scmi_get_protocol_instance(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… scmi_get_protocol_instance β€” a Kernel API Manual moment ✨

okay so bestie, welcome to the Kernel API Manual entry for scmi_get_protocol_instance(9) β€” this is the little helper that gets your protocol all set up and glowing 🫢


🌸 NAME 🌸

scmi_get_protocol_instance β€” the protocol initialization helper, periodt. Like, it literally exists to get your protocol an instance and it ate πŸ’…


✨ SYNOPSIS ✨

struct scmi_protocol_instance * scmi_get_protocol_instance (const struct scmi_handle *handle , u8 protocol_id );

πŸŽ€ ARGUMENTS πŸŽ€

  • handle β€” a reference to the SCMI platform instance. that's your whole vibe anchor, bestie πŸ’–
  • protocol_id β€” the protocol you're requesting. the one you want. the main character πŸ‘‘

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea β˜• β€” if the protocol you want has never been requested before for this particular instance, this function goes ahead and allocates and initializes all the needed structures for you 🧚 and while it's doing that it handles the resource allocation with a dedicated per-protocol devres subgroup. no cap, it's very organized about it ✨

if it's been requested before? then it's already got the goods and you're chilling 🌈


πŸ”₯ RETURN πŸ”₯

You get back a reference to an initialized protocol instance πŸŽ‰ β€” or an error on failure. and lowkey the one you'll wanna know about: it returns -EPROBE_DEFER in particular when the desired protocol could NOT be found 😭 so like, don't panic, it just means try again later fr fr πŸ’€

bestie if you see -EPROBE_DEFER it's not a crash, it's the protocol not being there yet. breathe. 🫢

🌟 SEE ALSO 🌟

the kernel file ./drivers/firmware/arm_scmi/driver.c β€” literally the source of truth πŸ’–

and a whole friend group of functions and structs you should also go say hi to πŸ‘‡


and that's the whole page, bestie πŸ“πŸ’œ this one comes from ./drivers/firmware/arm_scmi, dated October 2026 β€” so go forth, get your protocol instance, and slay βœ¨πŸ‘‘πŸ’…

πŸ“¦ where this page comes from