dev_pm_opp_g...uired_pstate(9)
π dev_pm_opp_get_required_pstate(9) β the Kernel API Manual, bestie edition π
okay so real talk, this is dev_pm_opp_get_required_pstate(9), straight out of the Kernel API Manual, section 9 (that's the kernel-API section, iykyk). The page header literally gets cut off as dev_pm_opp_g...uired_pstate(9) because the name is lowkey too long for the header, and honestly? iconic of it. Let's get into it β¨
πΈ NAME πΈ
dev_pm_opp_get_required_pstate β gets the required performance state corresponding to an available opp. That's it, that's the whole vibe π«Ά
π¦ SYNOPSIS π¦
unsigned int dev_pm_opp_get_required_pstate(struct dev_pm_opp *opp,
unsigned int index);
like, you hand it an opp and an index, and it hands you back an unsigned int. no drama, no cap π
β¨ ARGUMENTS β¨
oppβ the opp you want the performance state for. literally the opp in question, bestie πindexβ the index of the required opp. which one you're pointing at, fr fr π₯
π RETURN π
it returns the performance state that it read from the device tree, corresponding to the required opp. and if there's nothing to return? it gives you back U32_MAX instead. that's the fallback, that's the safety net, that's the "sorry bestie, nothing here" value ππ
π SEE ALSO π
so there are a lot of siblings in this family. the kernel file lives at ./drivers/opp/core.c, and everybody here is in section 9 β go say hi:
_find_opp_table(9)dev_pm_opp_get_bw(9)dev_pm_opp_get_voltage(9)dev_pm_opp_get_supplies(9)dev_pm_opp_get_power(9)dev_pm_opp_get_freq_indexed(9)dev_pm_opp_get_level(9)dev_pm_opp_is_turbo(9)dev_pm_opp_get_max_clock_latency(9)dev_pm_opp_get_max_volt_latency(9)dev_pm_opp_get_max_transition_latency(9)dev_pm_opp_get_suspend_opp_freq(9)dev_pm_opp_get_opp_count(9)dev_pm_opp_find_freq_exact(9)dev_pm_opp_find_key_exact(9)dev_pm_opp_find_freq_exact_indexed(9)dev_pm_opp_find_freq_ceil(9)dev_pm_opp_find_freq_ceil_indexed(9)dev_pm_opp_find_freq_floor(9)dev_pm_opp_find_freq_floor_indexed(9)dev_pm_opp_find_level_exact(9)dev_pm_opp_find_level_ceil(9)dev_pm_opp_find_level_floor(9)dev_pm_opp_find_bw_ceil(9)dev_pm_opp_find_bw_floor(9)dev_pm_opp_set_rate(9)dev_pm_opp_set_opp(9)dev_pm_opp_remove(9)dev_pm_opp_remove_all_dynamic(9)_opp_add_v1(9)dev_pm_opp_set_config(9)dev_pm_opp_clear_config(9)devm_pm_opp_set_config(9)dev_pm_opp_xlate_required_opp(9)dev_pm_opp_xlate_performance_state(9)dev_pm_opp_add_dynamic(9)_opp_set_availability(9)dev_pm_opp_adjust_voltage(9)dev_pm_opp_sync_regulators(9)dev_pm_opp_enable(9)dev_pm_opp_disable(9)dev_pm_opp_register_notifier(9)dev_pm_opp_unregister_notifier(9)dev_pm_opp_remove_table(9)
like, that's the whole opp friend group right there. main character energy from every single one π β¨
ngl this page is short and sweet β no warnings, no deprecated anything, no scary undefined behaviour. just one little getter doing its job. slay π
and that's the tea, bestie π this cutie of a page comes to you from ./drivers/opp and it's dated October 2026 β so yeah, the footer is giving very much "future kernel manual, but make it fashion" π love that for us. bye pookie, go read the device tree ππ¦
π¦ 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