clk_hw_forward_rate_request(9)
π clk_hw_forward_rate_request β the Kernel API Manual, bestie edition β¨
okay so real quick, before we get into it: this is a page from the Kernel API Manual about clk_hw_forward_rate_request(9). yes the name is a mouthful. no we're not renaming it. it's iconic, it stays. π
β¨ NAME β¨
clk_hw_forward_rate_request β literally just forwards a clk_rate_request to a clock's parent. that's the whole gig. it's giving "middle manager relaying a message upstairs" energy and honestly? slay. π
π¦ SYNOPSIS π¦
void clk_hw_forward_rate_request (const struct clk_hw *hw , const struct
clk_rate_request *old_req , const struct clk_hw *parent , struct
clk_rate_request *req , unsigned long parent_rate );
no cap, that's five arguments and a void return. she doesn't return anything, she just does. main character energy fr fr. π
πΈ ARGUMENTS πΈ
hwβ the original clock that got the rate request. like, the one who received the DM first. π¨old_reqβ the originalclk_rate_requeststructure we want to forward. this is the message being passed along, untouched, like a group chat screenshot.parentβ the clk we want to forwardold_reqto. the parent. the one who actually has to deal with it now. πreqβ theclk_rate_requeststructure we want to initialise. yes, a different one. bestie, you're filling in a fresh one to hand over. π«Άparent_rateβ the rate which is to be requested to parent. it's aunsigned long, it's the actual number, it's the whole point. π₯
π DESCRIPTION π
So what does it do? It initialises a clk_rate_request structure to submit to a clock parent inside __clk_determine_rate or similar functions.
that's it. that's the function. it takes the request that came in, and preps a shiny new request struct so the parent clock can get asked the same question. the way that a rate request just hops up the clock tree one level at a timeβ¦ obsessed. π
ngl, the wording here is "or similar functions" β so the manpage is being a little vague about exactly where you'd call it. don't come for me, I'm just relaying what it says. β
π§ SEE ALSO π§
Kernel file ./drivers/clk/clk.c β that's where she lives, that's her home. π‘
and now, the extended fam (there's like⦠a lot of them, and they all have (9) after their name because that's just how kernel API manpages roll):
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_determine_rate(9)clk_hw_round_rate(9)clk_round_rate(9)__clk_notify(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)
like I said. a LOT of cousins. drink some water before you go clicking through all of those. π
π anyway, that's the whole page. short and sweet, just like a good git commit message.
πΈ mwah, bye bestie! this page came out of ./drivers/clk, dated October 2026, and it's filed under the name clk_hw_forward_rate_request(9) in the Kernel API Manual. don't forget where you found her. π«Άβ¨
π¦ 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