STRUCT SCMI_TRANSPORT_HANDLE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct scmi_transport_handle(9) β€” Kernel API Manual, but make it make sense πŸ’…

okay so bestie, welcome to the kernel API manual for struct scmi_transport_handle β€” literally the transport instance handle, no cap. this is the little guy that represents one transport instance, and we're about to go through it together 🫢


✨ NAME ✨

struct scmi_transport_handle β€” the Transport instance handle. that's it, that's the name, iconic πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the whole struct, verbatim, don't touch:

struct scmi_transport_handle {
    struct device __must_check *(*supplier_get) (const struct
scmi_transport_handle *th);
    int (*supplier_put)(const struct scmi_transport_handle *th, struct
device *dev);
 };

like… two function pointers. two. that's the whole vibe. but they're important function pointers, so let's get into it πŸ‘‘


πŸŽ€ Members πŸŽ€

  • supplier_get β€” a helper that goes and retrieves the device descriptor identifying the transport driver serving this SCMI instance. that device descriptor gets used as a supplier for the core SCMI driver. now here's the spicy part πŸ”₯: if you return an error here, the probe sequence gets interrupted and returns that same error code right back. so each transport can pick which policy it wants to implement by choosing an appropriate error. literally choosing your own adventure, but with error codes πŸ’€
  • supplier_put β€” a helper that signals the specified transport supplier is no more being used and it's made available again. so like, releasing it back into the wild πŸ¦‹

🌸 Description 🌸

okay so important note: these helpers are needed and provided only by those transports whose initialization relies on some other subsystem, and whose relations to the core SCMI driver are not tracked by firmware descriptions. iykyk. if that's not your transport, these aren't your helpers, periodt ✨


🌈 SEE ALSO 🌈

all my besties in the kernel file ./drivers/firmware/arm_scmi/common.h:


not me writing a whole manpage about two function pointers 😭 but honestly? main character energy. read them, love them, don't skip the error return 🫢

that's the whole page bestie, you ate that πŸ’– this one lives in ./drivers/firmware/arm_scmi and it's dated October 2026 β€” so yeah, future vibes only ⭐ slay, and see you in the next manpage πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from