dev_pm_opp_u...ter_notifier(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME

dev_pm_opp_unregister_notifier β€” the "okay bestie we're DONE here" call that unregisters an OPP notifier for the device πŸŽ€

Like, you know how you registered a notifier and it's been sitting in the group chat getting every single OPP update? Yeah. This is how you take it out of the chat. Politely. ✨


✨ SYNOPSIS

int dev_pm_opp_unregister_notifier (struct device *dev , struct notifier_block *nb );

Two arguments, one int back, no drama. πŸ’…


πŸŽ€ ARGUMENTS

  • dev β€” the struct device * for which the notifier needs to be unregistered. It's giving "which device's notifier are we removing" energy. 🫢
  • nb β€” the struct notifier_block * to be unregistered. This is literally the notifier block itself, the one you want out of the notifier list. Bye girl πŸ‘‹

πŸ”₯ RETURN

0 on success, or a negative error value. That's it. That's the whole report card. 😭

Ngl, keep an eye on that return value β€” if it's negative, something went sideways and the notifier did not get unregistered. No cap. πŸ’€

🌈 SEE ALSO

Okay so the OPP saga is huge, and here's the whole cast β€” they all live in the 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_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_remove_table(9)

And if you registered with dev_pm_opp_register_notifier(9), this page is literally its other half β€” the breakup, the un-registration, the closing of the loop. πŸ¦‹


okay that's genuinely the whole page, you ate that πŸ’–

This one's from the Kernel API Manual, out of ./drivers/opp, dated October 2026 β€” stay iconic, bestie, and go unregister some notifiers responsibly πŸŽ€βœ¨πŸŒΈ

πŸ“¦ where this page comes from