scmi_devm_notifier_register(9)
π scmi_devm_notifier_register(9) β from the Kernel API Manual, bestie β¨
okay so, real talk: this one lives in the Kernel API Manual and it's genuinely one of the most "set it and forget it" little helpers in the whole SCMI notification world. It's the managed version of registering a notifier_block for an event β and "managed" here is doing a LOT of heavy lifting, so let's get into it π
β¨ NAME β¨
scmi_devm_notifier_register β managed registration of a notifier_block for an event π
like, devres-managed. so you don't have to remember to unregister it yourself. the kernel's got you. main character behavior fr fr.
πΈ SYNOPSIS πΈ
int scmi_devm_notifier_register (struct scmi_device *sdev , u8 proto_id , u8 evt_id , const u32 *src_id , struct notifier_block *nb );
that's the whole vibe check β five args, one int back. copy it exactly, don't get creative with it π
π¦ ARGUMENTS π¦
sdevβ a reference to anscmi_devicewhose embeddedstruct deviceis gonna be used for devres accounting. yes, embedded β that's the important bit, that inner device is what the cleanup magic hooks onto π«Άproto_idβ the Protocol ID (au8, keep it tidy)evt_idβ the Event ID (also au8)src_idβ the Source ID. and here's the cute part: when this isNULLyou're registering for events coming from ALL possible sources. all of them. every single one πnbβ a standardnotifier_blockto register for the specified event. nothing fancy, just your regular notifier block π
π DESCRIPTION π
so what it says on the tin: this is a generic devres managed helper to register a notifier_block against a protocol event β¨
that's it. that's the whole description. no cap, the manpage really said "short and iconic" and left. it's giving less is more, and honestly? slay π
π RETURN π
0on Success β
(that's the only value documented here, so that's the only one I'm telling you about β I'm not out here making things up π)
π₯ SEE ALSO π₯
okay this list is LONG and it's literally the entire supporting cast, so buckle up bestie, here's everybody π
- Kernel file
./drivers/firmware/arm_scmi/notify.c Theory of operation(9)struct scmi_notify_instance(9)struct events_queue(9)struct scmi_event_header(9)struct scmi_registered_events_desc(9)struct scmi_registered_event(9)struct scmi_event_handler(9)scmi_lookup_and_call_event_chain(9)scmi_process_event_header(9)scmi_process_event_payload(9)scmi_events_dispatcher(9)scmi_notify(9)scmi_kfifo_free(9)scmi_initialize_events_queue(9)scmi_allocate_registered_events_desc(9)scmi_register_protocol_events(9)scmi_deregister_protocol_events(9)scmi_allocate_event_handler(9)scmi_free_event_handler(9)scmi_bind_event_handler(9)scmi_valid_pending_handler(9)scmi_register_event_handler(9)__scmi_event_handler_get_ops(9)scmi_get_active_handler(9)__scmi_enable_evt(9)scmi_put_handler_unlocked(9)scmi_event_handler_enable_events(9)scmi_notifier_register(9)scmi_notifier_unregister(9)scmi_devm_notifier_unregister(9)scmi_protocols_late_init(9)scmi_notification_init(9)scmi_notification_quiesce(9)scmi_notification_exit(9)
ngl the un-managed siblingscmi_notifier_register(9)is right there too, so if you ever catch yourself thinking "wait, do I have to unregister this myself?" β check which one you actually called, bestie π thedevm_prefix is the whole personality trait here π
and that's the page!! mwah π this little icon was served up from ./drivers/firmware/arm_scmi in October 2026, so go forth and register those notifiers 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