dev_pm_opp_get_opp_count(9)
π dev_pm_opp_get_opp_count(9) π
okay so real talk β this is a page from the Kernel API Manual, section 9, and it's literally the most "just tell me how many there are" function in the whole opp subsystem. no cap. it's giving inventory check energy, and honestly? iconic. π
β¨ NAME β¨
dev_pm_opp_get_opp_count β get the number of opps available in the opp table πΈ
π¦ SYNOPSIS π¦
int dev_pm_opp_get_opp_count (struct device *dev );
like... that's it. one argument. one int back. slay. π
π ARGUMENTS π
devβ the device we're doing this whole operation for. that's your main character right there π
β RETURN β
so here's the vibe check on what you get back, bestie:
- if there are opps, you get the number of available opps π
- if there are none, you get
0π«Ά - and if something went sideways, you get the corresponding error value π
ngl, 0 vs. an error value is the classic "is it empty or is it broken" plot twist, so fr fr check for that. π
π SEE ALSO π
this is the part where the group chat gets tagged, and omg it's a lot of people. the kernel file ./drivers/opp/core.c is the one hosting _find_opp_table(9), and then we have the whole extended fam:
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_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_unregister_notifier(9)dev_pm_opp_remove_table(9)
and yes, _opp_add_v1(9) and _opp_set_availability(9) really do have that single leading underscore β don't come for me, that's just how they're spelled π
anyway that's the whole page, bestie β short, sweet, and highkey useful π§β¨ it lives over in ./drivers/opp, dated October 2026, and it's part of the Kernel API Manual (section 9, obviously π
). mwah, go count some opps π«Άπ
π¦ 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