STRUCT SCMI_RAW_MODE_INFO(9)
π struct scmi_raw_mode_info β like, the Kernel API Manual page, bestie
okay so this is the manual page for struct scmi_raw_mode_info, straight out of the Kernel API Manual, and it's genuinely the glow-up moment for SCMI Raw instance data. she's the little struct that holds everything π
β¨ NAME β¨
struct scmi_raw_mode_info β the structure holding SCMI Raw instance data. literally her whole job. no cap π
πΈ SYNOPSIS πΈ
struct scmi_raw_mode_info {
unsigned int id;
const struct scmi_handle *handle;
const struct scmi_desc *desc;
int tx_max_msg;
struct scmi_raw_queue *q[SCMI_RAW_MAX_QUEUE];
struct xarray chans_q;
struct list_head free_waiters;
struct mutex free_mtx;
struct list_head active_waiters;
struct mutex active_mtx;
struct work_struct waiters_work;
struct workqueue_struct *wait_wq;
struct dentry *dentry;
void *gid;
};
look at her. fourteen members. main character energy from top to bottom π
π¦ Members π¦
okay bestie let's go member by member, because every single one of these is important and we are NOT skipping anybody:
idβ the Sequential Raw instance ID. that's it, that's her number ποΈhandleβ Pointer to the SCMI entity handle to use. the whole point tbh.descβ Pointer to the transport descriptor to use πtx_max_msgβ Maximum number of concurrent TX in-flight messages. so, the vibes limit for how many things can be out at once, lowkey.qβ An array of Raw queue descriptors. iconic array energy π§Ίchans_qβ An XArray mapping optional additional per-channel queues. optional!! and per-channel!! slay πfree_waitersβ Head of freelist for unused waiters. the bench where the unemployed waiters sit πͺfree_mtxβ A mutex to protect the waiters freelist πactive_waitersβ Head of list for currently active and used waiters. these ones are booked and busy β¨active_mtxβ A mutex to protect the active waiters list πwaiters_workβ A work descriptor to be used with the workqueue machinery βοΈwait_wqβ A workqueue reference to the created workqueue πdentryβ Top debugfs root dentry for SCMI Raw πgidβ A group ID used for devres accounting π§Ύ
π Description π
okay so the one thing you HAVE to remember: this descriptor gets passed back to the core after SCMI Raw is initialized β as an opaque handle β so that all the subsequent SCMI Raw call hooks can use it.
opaque means don't peek inside, bestie. she's a handle, not a spectacle π
π₯ SEE ALSO π₯
- Kernel file
./drivers/firmware/arm_scmi/raw_mode.c Theory of operation(9)struct scmi_raw_queue(9)struct scmi_xfer_raw_waiter(9)struct scmi_raw_buffer(9)struct scmi_dbg_raw_data(9)scmi_xfer_raw_worker(9)scmi_xfer_raw_get_init(9)scmi_do_xfer_raw_start(9)scmi_raw_message_send(9)scmi_raw_message_receive(9)scmi_raw_mode_init(9)scmi_raw_mode_cleanup(9)scmi_raw_message_report(9)scmi_raw_error_report(9)
go read them. all of them. iykwim π
and that's the whole page, bestie π«Ά this little queen is filed under ./drivers/firmware/arm_scmi and the version stamp says October 2026 β so yeah, she's dated, she's gorgeous, and she's the struct scmi_raw_mode_info(9) of your dreams πβ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms