STRUCT SCMI_TRANSPORT_HANDLE(9)
π 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:
pack_scmi_header(9)unpack_scmi_header(9)struct scmi_chan_info(9)struct scmi_transport_ops(9)struct scmi_desc(9)struct scmi_debug_info(9)struct scmi_shmem_io_ops(9)struct scmi_shared_mem_operations(9)struct scmi_message_operations(9)struct scmi_transport_core_operations(9)struct scmi_transport(9)struct scmi_transport_supplier(9)scmi_transport_supplier_put(9)scmi_transport_supplier_get(9)
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
- 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