devm_clk_notifier_register(9)
π devm_clk_notifier_register(9) β from the Kernel API Manual
okay so bestie, sit down, because we're talking about devm_clk_notifier_register today β it's a kernel API manual page and honestly it's kind of a vibe. It's giving "register a managed rate-change notifier callback" and the way that's such a mouthful but also so iconic?? Anyway. Let's get into it. π
β¨ NAME β¨
devm_clk_notifier_register β register a managed rate-change notifier callback π¦
That's it, that's the whole name section, she's concise and she knows it.
πΈ SYNOPSIS πΈ
int devm_clk_notifier_register (struct device *dev , struct clk *clk ,
struct notifier_block *nb );
like yes, that's the whole signature, no cap. three arguments, one int coming back at you. π
π«Ά ARGUMENTS π«Ά
devβ the device for the clock "consumer". note the little quotes around consumer in the original, we're keeping those, they're doing a whole thing πclkβ the clock whose rate we are interested in π like, the one we care about, the main character clocknbβ the notifier block with the callback function pointer. this is the part that actually does something when the rate changes, so, you know, don't forget it π
π₯ DESCRIPTION π₯
okay so here's the whole entire description, and I need you to stay calm because it's one line:
Returns0on success,-EERRORotherwise.
that's it. that's the description. she's short, she's sweet, she's a little mysterious. 0 means slay, -EERROR means it did not slay. periodt. π
π SEE ALSO π
okay this is the part where the manpage goes absolutely feral and lists literally everyone in the clock subsystem's group chat. no gatekeeping here, we're naming all of them, fr fr:
- Kernel file
./include/linux/clk.hβ yes that's a file, it's in there, it counts π clk notifier callback types(9)struct clk_notifier(9)struct clk_notifier_data(9)struct clk_bulk_data(9)clk_notifier_register(9)clk_notifier_unregister(9)clk_get_accuracy(9)clk_set_phase(9)clk_get_phase(9)clk_set_duty_cycle(9)clk_get_scaled_duty_cycle(9)clk_is_match(9)clk_rate_exclusive_get(9)devm_clk_rate_exclusive_get(9)clk_rate_exclusive_put(9)clk_save_context(9)clk_restore_context(9)clk_prepare(9)clk_unprepare(9)clk_is_enabled_when_prepared(9)clk_get(9)clk_bulk_get(9)clk_bulk_get_all(9)clk_bulk_get_optional(9)devm_clk_bulk_get(9)devm_clk_bulk_get_optional(9)devm_clk_bulk_get_enable(9)devm_clk_bulk_get_optional_enable(9)devm_clk_bulk_get_all(9)devm_clk_bulk_get_all_enabled(9)devm_clk_get(9)devm_clk_get_prepared(9)devm_clk_get_enabled(9)devm_clk_get_optional(9)devm_clk_get_optional_prepared(9)devm_clk_get_optional_enabled(9)devm_clk_get_optional_enabled_with_rate(9)devm_get_clk_from_child(9)clk_enable(9)clk_bulk_enable(9)clk_disable(9)clk_bulk_disable(9)clk_get_rate(9)clk_put(9)clk_bulk_put(9)clk_bulk_put_all(9)devm_clk_put(9)clk_round_rate(9)clk_set_rate(9)clk_set_rate_exclusive(9)clk_has_parent(9)clk_set_rate_range(9)clk_set_min_rate(9)clk_set_max_rate(9)clk_set_parent(9)clk_get_parent(9)clk_get_sys(9)clk_drop_range(9)clk_get_optional(9)
sixty entries. sixty!! she ate and left absolutely no crumbs. π
and that's the page, bestie β go forth and register your managed rate-change notifier callbacks responsibly π
this lil manual page came to you from the source path ./include/linux and the date October 2026, and it was filed under devm_clk_notifier_register(9) the whole time, love that for it β¨π§
π¦ 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