dev_pm_opp_r...ter_notifier(9)
π dev_pm_opp_register_notifier β the Kernel API Manual, bestie edition π
okay so picture this: you're deep in the kernel, hanging out in dev_pm_opp_r...ter_notifier(9) land (that's the manual name, yes it's giving truncated-and-iconic π
), and you need the device to tell you when its OPPs change instead of you refreshing like a loser. That's this function. Welcome. π
β¨ NAME β¨
dev_pm_opp_register_notifier β registers an OPP notifier for the device, no cap π¦
πΈ SYNOPSIS πΈ
int dev_pm_opp_register_notifier (struct device *dev , struct
notifier_block *nb );
literally the whole signature, verbatim, we do not gatekeep:
int dev_pm_opp_register_notifier(struct device *dev, struct notifier_block *nb);
π ARGUMENTS π
devβ the device you want the notifier registered for. it's the main character here πnbβ the notifier block that's getting registered. this is the thing that goes off later, so pick a good one π«Ά
β RETURN β
Returns 0 on success, or a negative error value if it didn't slay π (negative = not it, bestie).
ngl, always check the return value. a negative number is the kernel politely telling you it's not happening.
π¦ SEE ALSO π¦
Kernel file ./drivers/opp/core.c, plus the whole friend group β every single one of these, in this exact order, because we don't do half-finished link lists in this house π
:
_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_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_unregister_notifier(9)dev_pm_opp_remove_table(9)
and that's the whole page, bestie β¨ this little gem lives in ./drivers/opp and it's dated October 2026 β yeah, the future, we're ahead of schedule ππ°οΈ ok bye, go register your notifier, mwah ππ§π
π¦ 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