STRUCT CLK_RATE_REQUEST(9)
π struct clk_rate_request(9) β a vibe check on the Kernel API Manual πΈ
okay so bestie, gather round π this is the page for struct clk_rate_request, and it's literally the little data blob that carries around all the clock constraints a clock user might require. iykyk. it lives in the Kernel API Manual, and it's giving "tiny struct, big responsibilities" energy β¨
β¨ NAME β¨
struct clk_rate_request β the structure that encodes the clk constraints a clock user might require. that's it, that's the whole job π
π¦ SYNOPSIS π¦
struct clk_rate_request {
struct clk_core *core;
unsigned long rate;
unsigned long min_rate;
unsigned long max_rate;
unsigned long best_parent_rate;
struct clk_hw *best_parent_hw;
};
look at her. six fields. no cap, absolutely iconic π
π Members π
okay so every single field, one by one, because we do NOT skip:
coreβ a pointer to thestruct clk_corethat's affected by this request. like, which clock is catching these hands π«Άrateβ the requested clock rate. heads up though: clock drivers will adjust this field according to what the hardware can actually do. so don't get too attached to your number, she's flexible πmin_rateβ the minimum rate imposed by clk users. the floor. the bare minimum. we've all been there πmax_rateβ the maximum rate imposed by clk users. the ceiling. the limit. know your worth β¨best_parent_rateβ the best parent rate that a parent can provide to fulfill the requested constraints. basically the most helpful parent ever, no cap π«Άbest_parent_hwβ the most appropriate parent clock that fulfills the requested constraints. main character parent energy fr fr π
π Description π
bestie, listen β this thing should be initialized by calling clk_hw_init_rate_request. like, don't just raw-dog it and hope for the best, okay? initialize her properly π
ngl this is the whole description. short and sweet and to the point, just like a good text back π
π SEE ALSO π
the friend group. the whole squad. every single one of them:
- the kernel file
./include/linux/clk-provider.h clk framework flags(9)struct clk_duty(9)struct clk_spread_spectrum(9)struct clk_ops(9)struct clk_parent_data(9)struct clk_init_data(9)struct clk_hw(9)struct clk_fixed_rate(9)clk_hw_register_fixed_rate(9)devm_clk_hw_register_fixed_rate(9)devm_clk_hw_register_fixed_rate_parent_data(9)clk_hw_register_fixed_rate_parent_hw(9)clk_hw_register_fixed_rate_parent_data(9)clk_hw_register_fixed_rate_with_accuracy(9)clk_hw_register_fixed_rate_with_accuracy_parent_hw(9)clk_hw_register_fixed_rate_with_accuracy_parent_data(9)clk_hw_register_fixed_rate_parent_accuracy(9)struct clk_gate(9)clk_hw_register_gate(9)clk_hw_register_gate_parent_hw(9)clk_hw_register_gate_parent_data(9)devm_clk_hw_register_gate(9)devm_clk_hw_register_gate_parent_hw(9)devm_clk_hw_register_gate_parent_data(9)struct clk_divider(9)clk_register_divider(9)clk_hw_register_divider(9)clk_hw_register_divider_parent_hw(9)clk_hw_register_divider_parent_data(9)clk_hw_register_divider_table(9)clk_hw_register_divider_table_parent_hw(9)clk_hw_register_divider_table_parent_data(9)devm_clk_hw_register_divider(9)devm_clk_hw_register_divider_parent_hw(9)devm_clk_hw_register_divider_parent_data(9)devm_clk_hw_register_divider_table(9)struct clk_mux(9)struct clk_fixed_factor(9)devm_clk_hw_register_fixed_factor_parent_hw(9)struct clk_fractional_divider(9)struct clk_multiplier(9)clk_hw_get_dev(9)clk_hw_get_of_node(9)
like i said. the whole squad. ate and left no crumbs π₯
and that's the page bestie!! π§ this little cutie came from ./include/linux, dated October 2026, and it's brought to you by the gorgeous humans behind the Kernel API Manual. mwah π go initialize your structs properly and slay the day πβ¨
π¦ 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