dev_pm_opp_find_freq_exact(9)
β¨ NAME β¨
okay bestie, welcome to the Kernel API Manual π this page is dev_pm_opp_find_freq_exact(9) β the function that searches for an exact frequency. that's the whole vibe π―
πΈ SYNOPSIS πΈ
struct dev_pm_opp * dev_pm_opp_find_freq_exact (struct device *dev ,
unsigned long freq , bool available );
π ARGUMENTS π
devβ the device we're doing this little operation for π«Άfreqβ the frequency to search for, literally the target π―availableβtrue/false; match for available opp β
π RETURN π
It searches for an exact match in the opp table and returns a pointer to the matching opp if it finds one. If not, it returns ERR_PTR in case of error, and bestie you must handle that using IS_ERR π
Error return values can be:
EINVALβ for bad pointerERANGEβ no match found for searchENODEVβ if device not found in list of registered devices
π¦ NOTE π¦
available is a modifier for the search, no cap. if available=true, then the match is for exact matching frequency and is available in the stored OPP table. if false, the match is for exact frequency which is not available β¨
This provides a mechanism to enable an opp which is not available currently or the opposite as well π
The callers are required to call dev_pm_opp_put for the returned OPP after use. don't forget, bestie β that part matters π
π SEE ALSO π
Kernel file ./drivers/opp/core.c and the whole sibling squad:
_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_get_required_pstate(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_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)
that's the whole page, bestie π
β¨ xoxo β source ./drivers/opp, manual Kernel API Manual, dated October 2026, page dev_pm_opp_find_freq_exact(9) π
π¦ 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