__clk_notify(9)
β¨ NAME β¨
Okay bestie, this is __clk_notify(9) from the Kernel API Manual β the little helper whose whole job is to call the clk notifier chain. π
π¦ SYNOPSIS π¦
int __clk_notify (struct clk_core *core , unsigned long msg , unsigned long old_rate , unsigned long new_rate );
π ARGUMENTS π
coreβ the clk that is changing rate. Thatβs the main character here. πmsgβ clk notifier type (seeinclude/linux/clk.h). Yes, the header file said what it said. π«Άold_rateβ old clk rate. The before pic. πnew_rateβ new clk rate. The glow-up. β¨
π DESCRIPTION π
Okay so what happens is: it triggers a notifier call chain on the clk rate-change notification for 'clk'. It passes a pointer to the struct clk and the previous and current rates to the notifier callback. Thatβs the vibe β very βtell the group chat that the rate changedβ energy. π
Bestie, this one is intended to be called by internal clock code only. Itβs giving staff-only door, not public API. No cap. π₯
If all went well, it returns NOTIFY_DONE from the last driver called. But if a driver returns NOTIFY_STOP or NOTIFY_BAD, it returns that immediately β no waiting around, periodt. π
π₯ SEE ALSO π₯
The kernel file is ./drivers/clk/clk.c. The whole SEE ALSO crew is: struct clk_core(9), clk_pm_runtime_get_all(9), clk_pm_runtime_put_all(9), clk_core_get(9), clk_determine_rate_noop(9), clk_rate_exclusive_put(9), clk_rate_exclusive_get(9), clk_unprepare(9), clk_prepare(9), clk_disable(9), clk_gate_restore_context(9), clk_save_context(9), clk_restore_context(9), clk_enable(9), clk_is_enabled_when_prepared(9), clk_hw_init_rate_request(9), clk_hw_forward_rate_request(9), __clk_determine_rate(9), clk_hw_round_rate(9), clk_round_rate(9), __clk_recalc_accuracies(9), clk_get_accuracy(9), __clk_recalc_rates(9), clk_get_rate(9), clk_hw_get_parent_index(9), __clk_speculate_rates(9), clk_set_rate(9), clk_set_rate_exclusive(9), clk_set_rate_range(9), clk_set_min_rate(9), clk_set_max_rate(9), clk_get_parent(9), clk_has_parent(9), clk_set_parent(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_debug_register(9), clk_debug_init(9), __clk_core_init(9), clk_core_link_consumer(9), clk_core_unlink_consumer(9), alloc_clk(9), free_clk(9), clk_hw_create_clk(9), clk_hw_get_clk(9), dev_or_parent_of_node(9), clk_register(9), clk_hw_register(9), clk_unregister(9), clk_hw_unregister(9), devm_clk_register(9), devm_clk_hw_register(9), devm_clk_hw_get_clk(9), clk_notifier_register(9), clk_notifier_unregister(9), struct of_clk_provider(9), of_clk_add_provider(9), of_clk_add_hw_provider(9), devm_of_clk_add_hw_provider(9), of_clk_del_provider(9), of_parse_clkspec(9), of_clk_get_from_provider(9), of_clk_get_by_name(9), of_clk_get_parent_count(9), of_clk_parent_fill(9), of_clk_detect_critical(9), of_clk_init(9).
xoxo, your kernel bestie π β source/version: ./drivers/clk Β· date: October 2026 Β· page: __clk_notify(9). π
π¦ 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