CLK NOTIFIER CALLBACK TYPES(9)
π clk notifier callback types(9) π
ok so this is from the Kernel API Manual bestie, and it's literally all about the three callback types your clk notifier can get hit with π buckle up, it's short but it MATTERS.
πΈ PRE_RATE_CHANGE πΈ
okay so PRE_RATE_CHANGE gets called immediately before the clk rate is changed β it's basically the heads-up text before the situation actually goes down, telling you the rate change is gonna proceed fr fr. π¦
bestie listen: drivers must immediately terminate any operations that will be affected by the rate change. no cap, immediately. π
Callbacks may either return NOTIFY_DONE, NOTIFY_OK, NOTIFY_STOP or NOTIFY_BAD.
π ABORT_RATE_CHANGE π
so ABORT_RATE_CHANGE gets called if the rate change failed for some reason after PRE_RATE_CHANGE happened. in that case, all registered notifiers on the clk will be called with ABORT_RATE_CHANGE β like a group chat broadcast of bad news, everyone gets it π
Callbacks must always return NOTIFY_DONE or NOTIFY_OK. that's the whole vibe check, no other returns allowed π
β¨ POST_RATE_CHANGE β¨
and then POST_RATE_CHANGE gets called after the clk rate change has successfully completed β the celebratory confetti moment ππ
Callbacks must always return NOTIFY_DONE or NOTIFY_OK. same deal. periodt. π
π«Ά SEE ALSO π«Ά
Kernel file ./include/linux/clk.h plus a whole roster of icons, so let's go down the list bestie:
struct clk_notifier(9)struct clk_notifier_data(9)struct clk_bulk_data(9)clk_notifier_register(9)clk_notifier_unregister(9)devm_clk_notifier_register(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)
that's the whole page babes, ily, go forth and notifier responsibly π
sign-off szn: this one lives in ./include/linux, dated October 2026, and it's clk notifier callback types(9) β catch you on the next manpage bestie πβ¨
π¦ 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