STRUCT DEV_PM_OPP(9)
πΈ NAME πΈ
okay so bestie, this is struct dev_pm_opp(9) from the Kernel API Manual, and itβs literally the Generic OPP description structure. Weβre doing the whole tour, every member, no skips. β¨
β¨ SYNOPSIS β¨
Hereβs the whole struct, exactly as it ships β yes, even the #ifdef bits. Peep it:
struct dev_pm_opp {
struct list_head node;
struct kref kref;
bool available;
bool dynamic;
bool turbo;
bool suspend;
bool removed;
unsigned long *rates;
unsigned int level;
struct dev_pm_opp_supply *supplies;
struct dev_pm_opp_icc_bw *bandwidth;
unsigned long clock_latency_ns;
struct dev_pm_opp **required_opps;
struct opp_table *opp_table;
struct device_node *np;
#ifdef CONFIG_DEBUG_FS;
struct dentry *dentry;
const char *of_name;
#endif;
};
π Members π
nodeβ opp table node. The nodes are maintained throughout the lifetime of boot. It is expected only an optimal set of OPPs are added to the library by the SoC framework. IMPORTANT: the opp nodes should be maintained in increasing order. Like, sorted, bestie β do not mess with that. πkrefβ for reference count of the OPP.availableβ true/false β marks if this OPP as available or not.dynamicβ not-created from static DT entries.turboβ true if turbo (boost) OPP.suspendβ true if suspend OPP.removedβ flag indicating that OPPβs reference is dropped by OPP core.ratesβ Frequencies in hertz.levelβ Performance level.suppliesβ Power supplies voltage/current values.bandwidthβ Interconnect bandwidth values.clock_latency_nsβ Latency (in nanoseconds) of switching to this OPPβs frequency from any other OPPβs frequency.required_oppsβ List of OPPs that are required by this OPP.opp_tableβ points back to theopp_tablestruct this opp belongs to.npβ OPPβs device node.dentryβ debugfs dentry pointer (per opp).
tiny note, bestie: inside the struct, dentry and of_name are both in the CONFIG_DEBUG_FS block. The original member list only gives dentry its own blurb, so Iβm not inventing extra lore for of_name β itβs still right there in the code above. π«Ά
π Description π
This structure stores the OPP information for a given device. Thatβs the whole vibe: itβs the place where a given deviceβs OPP info lives. πΎ
π SEE ALSO π
Kernel file ./drivers/opp/opp.h and these struct besties: struct opp_config_data(9), struct dev_pm_opp_icc_bw(9), struct opp_device(9), struct opp_table(9). Go read them, iykyk. π¦
And thatβs the page! source/version: ./drivers/opp; date: October 2026; header: struct dev_pm_opp(9). Bye bestie, slay your 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