dev_pm_opp_find_bw_floor(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌟 dev_pm_opp_find_bw_floor β€” Kernel API Manual 🌟

✨ NAME ✨

dev_pm_opp_find_bw_floor β€” Search for a rounded floor bandwidth. Floor, bestie. Not ceiling. We said what we said. πŸ’…

🌸 SYNOPSIS 🌸

struct dev_pm_opp * dev_pm_opp_find_bw_floor (struct device *dev ,
unsigned int *bw , int index );

πŸŽ€ ARGUMENTS πŸŽ€

  • dev β€” device for which we do this operation. (yes, this whole thing is about that device)
  • bw β€” start bandwidth.
  • index β€” which bandwidth to compare, in case of OPPs with several values.

πŸ¦‹ DESCRIPTION πŸ¦‹

Search for the matching floor available OPP from a starting bandwidth for a device. It's literally finding the floor match in the available OPP lineup β€” no cap.

The callers are required to call dev_pm_opp_put for the returned OPP after use. Do not ghost that cleanup step, okay? 😭

πŸ‘‘ RETURN πŸ‘‘

Returns the matching *opp and refreshes *bw accordingly, else returns ERR_PTR in case of error and should be handled using IS_ERR. If it goes wrong, it's an error-pointer situation, not a "maybe it worked" situation.

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 πŸ‘€

The whole crew: Kernel file ./drivers/opp/core.c _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_level_floor(9), dev_pm_opp_find_bw_ceil(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)


πŸ’– source/version: ./drivers/opp Β· date: October 2026 Β· page: dev_pm_opp_find_bw_floor(9) β€” that's the whole manual, bestie, mwah! 🫢
πŸ“¦ where this page comes from