dev_pm_opp_find_level_floor(9)
π dev_pm_opp_find_level_floor β from the Kernel API Manual β¨
okay so bestie, listen. this one's a kernel function, dev_pm_opp_find_level_floor(9), and it lives in the Kernel API Manual. it's giving "quiet little helper that does exactly one thing really well," and honestly? we stan a focused icon. π
β¨ NAME β¨
dev_pm_opp_find_level_floor β search for a rounded floor level π―
π¦ SYNOPSIS π¦
struct dev_pm_opp * dev_pm_opp_find_level_floor (struct device *dev ,
unsigned int *level );
like, that's the whole vibe. you hand it a device and a pointer to a level, it hands you back an OPP pointer. simple. iconic. π
π ARGUMENTS π
devβ the device we're doing this whole operation for π«Άlevelβ the start level. your starting point. the beginning of the quest, iykyk β
πΈ DESCRIPTION πΈ
so what it actually does: it searches for the matching floor available OPP, starting from a starting level, for a device. that's it, that's the whole thing. no cap. π₯
π¨ bestie, pay attention: callers are required to call dev_pm_opp_put for the returned OPP after use. like, you gotta give it back. don't just walk away with it, that's not the vibe. π
π RETURN π
it returns the matching *opp and refreshes *level accordingly (yes, it edits your level through the pointer, main character behavior honestly β¨).
otherwise it returns ERR_PTR in case of error, and you should handle that using IS_ERR. the error return values can be:
EINVALβ for bad pointer πERANGEβ no match found for search πENODEVβ if device not found in list of registered devices π
π SEE ALSO π
okay this list is LONG but we're not skipping a single one, because every single one of these deserves its moment. Kernel file ./drivers/opp/core.c and friends:
_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_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_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 friend group right there. the opp cinematic universe. π
π that's the whole page, bestie π
this one came from ./drivers/opp, dated October 2026, and it's page dev_pm_opp_find_level_floor(9) in the Kernel API Manual. go forth and handle your IS_ERR checks, ily π«Άβ¨
π¦ 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