STRUCT SCMI_RAW_MODE_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 πŸ”₯

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