clk_bulk_put(9)
π clk_bulk_put(9) β like, the Kernel API Manual page, bestie π
okay so real talk, we're in the Kernel API Manual today and the star of the show is clk_bulk_put β yes it's a 9, yes that means kernel-internal, yes we're fancy π
β¨ NAME β¨
clk_bulk_put β "free" the clock source π (the quotes are doing a LOT of work there, keep them, they're load-bearing)
πΈ SYNOPSIS πΈ
void clk_bulk_put (int num_clks , struct clk_bulk_data *clks );
likeβ¦ she returns nothing (void), she takes two things, she's chill about it π¦
π ARGUMENTS π
num_clksβ the number ofclk_bulk_dataπ (aka how many entries are in that table, don't lie to her)clksβ theclk_bulk_datatable of consumer π (the actual table, hand it over)
π₯ NOTE π₯
bestie this part is NOT a vibe, it's rules π
drivers must ensure that all clk_bulk_enable calls made on this clock source are balanced by clk_bulk_disable calls prior to calling this function. balanced. like, enable-count-wise. no leftover enables, periodt π
clk_bulk_put should not be called from within interrupt context π«β¨ like genuinely do not, that's not the moment, that's not the place π
π¦ SEE ALSO π¦
Kernel file ./include/linux/clk.h β and then, like, the entire clock extended family showed up to the group chat π:
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)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_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)
like I said. the whole family. iykyk π«Ά
and that's the page!! mwah π this one came from ./include/linux, dated October 2026, and it's literally titled clk_bulk_put(9) β slay, ate, no crumbs, go free those clocks responsibly 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