scmi_msg_response_validate(9)
π
scmi_msg_response_validate(9) β Kernel API Manual π
π NAME π
scmi_msg_response_validate β validate a message type against the state of the related xfer. It's giving vibe check, but make it firmware π
β¨
π¦ SYNOPSIS π¦
the signature is literally this, bestie β copy it exactly:
int scmi_msg_response_validate (struct scmi_chan_info *cinfo , u8 msg_type , struct scmi_xfer *xfer );
π ARGUMENTS π
cinfoβ a reference to the channel descriptor. πmsg_typeβ the message type to check. πxferβ a reference to the xfer to validate againstmsg_type. π«Ά
β¨ DESCRIPTION β¨
okay so listen: this function checks whether msg_type is congruent with the current state of a pending xfer. If an asynchronous delayed response comes in before the related synchronous response β that's the Out-of-Order Delayed Response case β the missing synchronous response is assumed to be OK and completed, and it carries on with the Delayed Response. This is done to address the case in which the underlying SCMI transport can deliver such out-of-order responses. No cap, that's the whole plot. π
π CONTEXT π
Assumes to be called with xfer->lock already acquired. Like, lock it before you call it, bestie β it's not gonna do it for you. π
π RETURN π
0 on Success β slay β error otherwise. Sigh when it's not zero. π
π SEE ALSO π
Kernel file ./drivers/firmware/arm_scmi/driver.c and struct scmi_xfers_info(9) β the source spot and its xfer info struct, iykyk. πΈ
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_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),scmi_channels_setup(9)
okay that's the page! brought to you by source/version ./drivers/firmware/arm_scmi, dated October 2026, and yes β it's scmi_msg_response_validate(9) all the way down. mwah πβ¨
π¦ 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