scmi_wait_fo...age_response(9)
π scmi_wait_for_message_response(9) π
okay so bestie, welcome to the Kernel API Manual β¨ β yes that's the manual name, we're being fancy today π. This little function is scmi_wait_for_message_response, and no cap, it's basically the "how are we waiting for our text back" decision-maker of the SCMI world π¦.
πΈ NAME πΈ
scmi_wait_for_message_response β literally a helper that pulls together all the possible ways of waiting for a synchronous message response π. One function to hold every vibe of waiting, periodt.
β¨ SYNOPSIS β¨
int scmi_wait_for_message_response (struct scmi_chan_info *cinfo ,
struct scmi_xfer *xfer );
yeah, that's the whole signature, keep it exactly like that π«Ά
π ARGUMENTS π
cinfoβ the SCMI channel info, iykyk π«xferβ a reference to the transfer we're out here waiting for, main character energy π₯
π DESCRIPTION π
so here's the tea β: this function chooses its waiting strategy for you β sleep-waiting versus busy-waiting β depending on configuration flags, like xfer->hdr.poll_completion π.
it's giving "let me pick the right outfit for the occasion", except the outfit is a wait loop π β¨
β RETURN β
returns 0 on Success π, and an error otherwise π β that's it, that's the whole deal.
super short section, but we're not skipping it, bestie, we keep every detail in this house π
π¦ SEE ALSO π¦
Kernel file ./drivers/firmware/arm_scmi/driver.c β and the whole friend group π:
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_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)scmi_channels_setup(9)
like, that's a lot of siblings but we love them all equally π§π
and that's the page, bestie!! π sign-off time: this one lives at ./drivers/firmware/arm_scmi and it's dated October 2026 β screenshot it, memorize it, slay the kernel π
πβ¨
π¦ 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