scmi_protoc...on_negotiate(9)
β¨ scmi_protoc...on_negotiate(9) β¨
okay so bestie, welcome to the Kernel API Manual π
this little page is called scmi_protoc...on_negotiate(9) (yes the title got truncated by the terminal, it's giving "my name is too long for the group chat nickname limit" π) and it's literally all about the scmi_protocol_version_negotiate helper. let's get into it π«Ά
πΈ NAME πΈ
scmi_protocol_version_negotiate β negotiate protocol version π
β¨ SYNOPSIS β¨
int scmi_protocol_version_negotiate (struct scmi_protocol_handle *ph );
π¦ ARGUMENTS π¦
phβ a reference to the protocol handle. that's it, that's the whole vibe, just a pointer to the handle π«Ά
π DESCRIPTION π
so this function is an helper (yes the original said "an helper", we don't gatekeep grammar here π) that lets you negotiate a protocol version that's different from the latest one the platform advertised as supported. iykyk, sometimes you don't want the newest version and that's valid π
and here's the iconic part: on Success, backward compatibility is assured by the platform. so the platform's got your back, no cap π₯
β RETURN β
0 on Success β¨ (that's the good ending, bestie π)
π SEE ALSO π
okay this list is LONG, like, main character energy long π but every single one of them matters, so here we go, no skipping π«Ά
- 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_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)
bestie that's 47 references plus the kernel file, we ate that list UP π don't sleep on any of them π
anyway, that's the whole page! sign-off time π§ source: ./drivers/firmware/arm_scmi, version: October 2026 π and the page itself is scmi_protoc...on_negotiate(9) β truncated name, full hearts πΈ periodt.
π¦ 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