STRUCT SCMI_CHAN_INFO(9)
π struct scmi_chan_info(9) β the kernel API manual, bestie edition β¨
Okay so picture this: it's a struct scmi_chan_info, right? It's literally the structure that represents a SCMI channel's information. That's the whole vibe. One channel, one lil info bundle, main character energy π
πΈ SYNOPSIS πΈ
Like, here's the shape of it, no cap, copy it exactly:
struct scmi_chan_info {
int id;
struct device *dev;
bool is_p2a;
unsigned int rx_timeout_ms;
unsigned int max_msg_size;
struct scmi_handle *handle;
bool no_completion_irq;
void *transport_info;
};
(Yes there's an extra lil space before that closing brace in the original. We respect it. It's iconic. π )
β¨ Members β¨
Girl. Let's go through them one by one, because every single field matters:
idβ an identifier for this channel π and get this: it matches the protocol number used to initialize this channel. So it's not just some random number, it's a whole identity, iykyk.devβ a reference to the device in the SCMI hierarchy that corresponds to this channel. Your channel's home address, basically πis_p2aβ a flag that tells you whether a channel is P2A (RX). Just a bool doing bool things, slaying as always βrx_timeout_msβ the configured RX timeout, measured in milliseconds. Tick tock, bestie π°οΈmax_msg_sizeβ maximum size of the message payload. That's the ceiling, the limit, the "don't test me" of payload sizes π₯handleβ a pointer to the SCMI entity handle. Pointing at things, as pointers do π«Άno_completion_irqβ a flag that says this channel has no completion interrupt mechanism for synchronous commands. And listen, this one's spicy: it can be dynamically set by transports at run-time inside their provided.chan_setup. So it's not locked in at birth, it can change at runtime. Not me being flexible πtransport_infoβ transport layer related information. Vibes. Transport vibes. π
π¦ SEE ALSO π¦
Kernel file ./drivers/firmware/arm_scmi/common.h, plus the whole friend group:
pack_scmi_header(9)unpack_scmi_header(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_handle(9)struct scmi_transport(9)struct scmi_transport_supplier(9)scmi_transport_supplier_put(9)scmi_transport_supplier_get(9)
Ngl bestie, that SEE ALSO list is a whole squad. Read them all. Periodt. π
And that's the page! π§ This little gem lives over at ./drivers/firmware/arm_scmi, dated October 2026, and the header/footer both rep struct scmi_chan_info(9). Go off, king π π
π¦ 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