scmi_channels_setup(9)
β¨ scmi_channels_setup(9) β Kernel API Manual β¨
Okay bestie, welcome to the page for scmi_channels_setup(9), straight out of the Kernel API Manual. Itβs giving βkernel helper with main character energy,β and weβre gonna get into all of it π
.
πΈ NAME πΈ
scmi_channels_setup β the helper that initializes all required channels. Periodt.
π οΈ SYNOPSIS π οΈ
int scmi_channels_setup (struct scmi_info *info );
π ARGUMENTS π
infoβ the SCMI instance descriptor. Thatβs the whole vibe check for this call, no cap.
π DESCRIPTION π
Okay so this function initializes all the channels found described in the DT against the underlying configured transport, using custom defined dedicated devices instead of borrowing devices from the SCMI drivers. The way that works is: channels are initialized upfront during core SCMI stack probing, and they are no more coupled with SCMI devices used by SCMI drivers. Slay for decoupling, honestly π¦.
π«Ά Note time, bestie: even though a pair of TX/RX channels is associated to each protocol defined in the DT, a distinct freshly initialized channel is created only if the DT node for the protocol at hand describes a dedicated channel. In all the other cases, the common BASE protocol channel is reused. Thatβs the rule, and itβs lowkey important.
π RETURN π
0on Success. Thatβs the good ending β¨.
π SEE ALSO π
No cap, hereβs the whole SEE ALSO squad β every single one, in order:
- Kernel file
./drivers/firmware/arm_scmi/driver.c struct scmi_xfers_info(9)struct scmi_protocol_instance(9)struct scmi_info(9)scmi_create_protocol_devices(9)scmi_xfer_token_set(9)scmi_xfer_token_clear(9)scmi_xfer_inflight_register_unlocked(9)scmi_xfer_inflight_register(9)scmi_xfer_raw_inflight_register(9)scmi_xfer_pending_set(9)scmi_xfer_get(9)scmi_xfer_raw_get(9)scmi_xfer_raw_channel_get(9)__scmi_xfer_put(9)scmi_xfer_raw_put(9)scmi_xfer_lookup_unlocked(9)scmi_bad_message_trace(9)scmi_msg_response_validate(9)scmi_xfer_state_update(9)scmi_xfer_command_acquire(9)scmi_rx_callback(9)xfer_put(9)scmi_wait_for_message_response(9)scmi_xfer_raw_wait_for_message_response(9)do_xfer(9)do_xfer_with_response(9)xfer_get_init(9)version_get(9)scmi_set_protocol_priv(9)scmi_get_protocol_priv(9)scmi_common_extended_name_get(9)scmi_common_get_max_msg_size(9)scmi_protocol_msg_check(9)struct scmi_iterator(9)scmi_revision_area_get(9)scmi_protocol_version_negotiate(9)scmi_protocol_version_initialize(9)scmi_alloc_init_protocol_instance(9)scmi_get_protocol_instance(9)scmi_protocol_acquire(9)scmi_protocol_release(9)scmi_devm_protocol_get(9)scmi_devm_protocol_acquire(9)scmi_devm_protocol_put(9)scmi_is_transport_atomic(9)scmi_handle_get(9)scmi_handle_put(9)
This cutie lives in source/version ./drivers/firmware/arm_scmi, dated October 2026, and itβs literally the scmi_channels_setup(9) page β slay and goodbye π
π
π¦ 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