clk_hw_init_rate_request(9)
π
clk_hw_init_rate_request(9) β from the Kernel API Manual, bestie
okay so this is a page about one tiny function that sets up your rate request before you go ask the clock core for a favour. it's a void function, meaning it does the thing and gives you nothing back β and honestly? iconic behaviour. no return value, no drama, just vibes and a correctly-initialised struct. π
β¨ NAME β¨
clk_hw_init_rate_request β Initializes a clk_rate_request
like literally that's it, that's the whole job. it takes your empty little struct and fills it in so you can go submit it. π¦
πΈ SYNOPSIS πΈ
void clk_hw_init_rate_request (const struct clk_hw *hw , struct
clk_rate_request *req , unsigned long rate );
three things go in, nothing comes out. void main character energy fr fr. π«
π ARGUMENTS π
hwβ the clk you're repping, aka the one you wanna submit a rate request for πreqβ theclk_rate_requeststructure you want to initialise. this is the glow-up target, she's about to get all her fields filled in πrateβ the rate you're requesting. the number. the goal. the dream. β
π DESCRIPTION π
so what it does: Initializes a clk_rate_request structure to submit to __clk_determine_rate or similar functions.
that's the whole flex, bestie β it's the setup step, not the main event. you prep the clk_rate_request here, then hand it off to __clk_determine_rate or whatever similar function is on duty that day. think of it as doing your hair before the party: the party is __clk_determine_rate, and this function is you with the curling iron. β¨π«Ά
ngl it's a small function but it's load-bearing, so don't skip it. π
π¦ SEE ALSO π¦
first up, the source, so you can go read the real thing: Kernel file ./drivers/clk/clk.c
and now the full link-up, no cap, every single one:
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_forward_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β¦ that's the whole clock family reunion right there. every cousin showed up. ππ₯
seriously though bestie, that's a lot of neighbours β if you're poking at rate stuff, at least skim__clk_determine_rate(9)andclk_hw_forward_rate_request(9)so you know where your freshly-initialised struct is actually headed. π«Ά
and that's the page!! mwah π this one lives under ./drivers/clk and it's dated October 2026 β so go forth, init your clk_rate_request, and slay. ππΈβ¨
π¦ 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