dev_pm_opp_enable(9)
π dev_pm_opp_enable β Kernel API Manual, bestie edition π
okay so this is <hotpink>dev_pm_opp_enable(9)</hotpink> straight out of the Kernel API Manual, and it's literally the "un-ghost" button for an OPP. Let me walk you through it, no cap.
β¨ NAME β¨
dev_pm_opp_enable β bestie, it's giving "Enable a specific OPP". that's the whole vibe. π¦
πΈ SYNOPSIS πΈ
int dev_pm_opp_enable (struct device *dev , unsigned long freq );
two arguments, one int back, she's lowkey simple and that's the point. π
π ARGUMENTS π
devβ thestruct devicewe're doing this whole operation for. like, who are we enabling an OPP for? this one. main character device energy. πfreqβ the OPP frequency you wanna enable. that's the one coming back from its little hiatus. β¨
π DESCRIPTION π
so the way this works: dev_pm_opp_enable enables a provided OPP. if the operation is valid, it returns 0 β slay. otherwise you get the corresponding error value back, which is your vibe check saying "nope." π
the tea is that this function is meant to be used for users to make an OPP available again after it got temporarily made unavailable with dev_pm_opp_disable. so it's literally the reunion arc. dev_pm_opp_disable said "you're off the table for a sec," and dev_pm_opp_enable says "bestie, come back, we miss you." π«Ά
no cap, this is the temporary unavailability route β read it as the partner-in-crime of dev_pm_opp_disable, not some brand-new OPP being born. π
π₯ RETURN π₯
here's the receipts on what she hands back:
-EINVALβ for bad pointers π (you passed her something cursed, she's not doing that)-ENOMEMβ if no memory is available for the copy operation π0β if no modification was done OR the modification was successful. iconic either way. β
π¦ SEE ALSO π¦
the whole group chat, fr fr. 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_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 β go enable some OPPs responsibly π
source/path: ./drivers/opp Β· date: October 2026 Β· that's the sign-off, 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