scmi_protocol_release(9)
π scmi_protocol_release β the Kernel API Manual page, bestie edition
okay so we're in the Kernel API Manual today and the star of the show is scmi_protocol_release, aka the protocol de-initialization helper π like literally it's the cleanup bestie, the one who turns off the lights.
β¨ NAME β¨
scmi_protocol_release β protocol de-initialization helper π«Ά the little goodbye function.
πΈ SYNOPSIS πΈ
void scmi_protocol_release (const struct scmi_handle *handle , u8 protocol_id );
that's it, that's the whole thing. two args and vibes β¨
π¦ ARGUMENTS π¦
handleβ a reference to the SCMI platform instance π like, which platform are we talking about, babe.protocol_idβ the protocol being requested π the specific one, no guessing.
π DESCRIPTION π
so what it does is: remove one user for the specified protocol, and then it triggers de-initialization and resources de-allocation once the last user has gone π₯
read that again, because it's giving "last one out turns off the lights" π‘ one user dips β the count goes down β and only when the very last user is gone does the whole thing actually de-init and free its resources. no premature cleanup, no cap. periodt π
π SEE ALSO π
okay this list is LONG, buckle up bestie, iykyk π
kernel file ./drivers/firmware/arm_scmi/driver.c β plus all of these:
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_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)
and that's the page, bestie π§ go forth and release protocols responsibly π
~ brought to you by ./drivers/firmware/arm_scmi, October 2026 ~ βπ
π¦ 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