dev_pm_opp_...required_opp(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

dev_pm_opp_xlate_required_opp β€” bestie, this is the one that hunts down the required OPP for an OPP sitting in @src_table. Slay. ✨

(this page lives in the Kernel API Manual, section 9, and the page title is dev_pm_opp_...required_opp β€” yes it's abbreviated, it's giving mysterious. iykyk.)


🫢 SYNOPSIS 🫢

struct dev_pm_opp * dev_pm_opp_xlate_required_opp (struct opp_table
*src_table , struct opp_table *dst_table , struct dev_pm_opp *src_opp );

🌸 ARGUMENTS 🌸

  • src_table β€” the OPP table that has dst_table listed as one of its required OPP tables. like, dst_table is in src_table's inner circle 🫢
  • dst_table β€” the required OPP table of src_table. the one being pointed at.
  • src_opp β€” an OPP from src_table. your starting point, your main character.

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so this function returns the OPP β€” and that OPP is present in dst_table β€” that gets pointed out by the "required-opps" property of src_opp (which is present in src_table). it's basically matchmaking: one table's OPP says "i need that one over there," and this function goes and fetches it for you. iconic behavior honestly πŸ’…

⚠️ real talk bestie β€” the callers are required to call dev_pm_opp_put for the returned OPP after use. do not forget. no cap, do not forget. 🫢

⭐ RETURN ⭐

a pointer to 'struct dev_pm_opp' on success, and errorno otherwise. that's the whole vibe check. 😭


πŸŽ€ SEE ALSO πŸŽ€

kernel file ./drivers/opp/core.c and honestly the whole OPP friend group:

_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_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_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)


and that's the whole page bestie πŸ’œ this lil drop came from ./drivers/opp, dated October 2026, and the page itself is dev_pm_opp_...required_opp(9) β€” go forth and xlate responsibly 🧚✨

πŸ“¦ where this page comes from