scmi_protocol_acquire(9)
π
scmi_protocol_acquire(9) β the scmi_protocol_acquire page from the Kernel API Manual, bestie β¨
okay so you opened a man page, and not just any man page β this is scmi_protocol_acquire from the Kernel API Manual and honestly? she's short, she's sweet, she's giving "little function, big responsibilities" energy. let's get into it π«Ά
πΈ NAME πΈ
scmi_protocol_acquire β Protocol acquire, periodt. that's the whole name, no notes.
π SYNOPSIS π
int scmi_protocol_acquire (const struct scmi_handle *handle , u8
protocol_id );
so she takes two things and hands you back an int. iconic signature, no cap π
π¦ ARGUMENTS π¦
handleβ a reference to the SCMI platform instance. like, which platform are we talking to? this is how you tell her π§protocol_idβ the protocol being requested. the actual one you want. the main character of the request π
β¨ DESCRIPTION β¨
okay so here's the vibe: you call this and she registers a new user for the requested protocol on the specified SCMI platform instance. that's the whole job, and she does it slayfully π
and the little extra sprinkle? she's possibly triggering its initialization on first user β meaning if you're the first one through the door, stuff might actually spin up right then. lowkey a big deal. first-user energy fr fr π₯
no guessing from me on what "possibly" means β that's literally what the page says, and I'm not out here inventing lore π
π RETURN π
0 if the protocol was acquired successfully. that's the happy path, the vibe check passed, the π on top.
π SEE ALSO π
bestie, buckle up, because this list is long and I'm not skipping a single one of these β every single reference, in order, exactly as she wrote them:
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_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)
that's forty-seven entries, I counted, and I did not skip a single (9) π she really said "here's my whole friend group" π
π cute little sign-off π
this beauty lives under ./drivers/firmware/arm_scmi, and the page is dated October 2026. so like, future-dated slay, we love to see it. go read the source, hydrate, and remember: acquire responsibly ππβ¨
π¦ 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