opp_tableRegular
4.4: Absent ⚠️
4.8: Absent ⚠️
4.10: Absent ⚠️
4.13: Absent ⚠️
4.15: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
unsigned int regulator_count;
bool genpd_performance_state;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
int (*get_pstate)(struct device *, long unsigned int);
struct dentry *dentry;
char dentry_name[255];
};
4.18: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
unsigned int regulator_count;
bool genpd_performance_state;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
5.0: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
5.3: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
5.4: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
5.8: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
unsigned int parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool regulator_enabled;
struct icc_path **paths;
unsigned int path_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
5.11: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
unsigned int parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
struct icc_path **paths;
unsigned int path_count;
bool enabled;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
5.13: ✅struct opp_table {
struct list_head node;
struct list_head lazy;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
unsigned int parsed_static_opps;
enum opp_table_access shared_opp;
long unsigned int current_rate;
struct dev_pm_opp *current_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
struct icc_path **paths;
unsigned int path_count;
bool enabled;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_opp_supply *sod_supplies;
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
5.15: ✅struct opp_table {
struct list_head node;
struct list_head lazy;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
unsigned int parsed_static_opps;
enum opp_table_access shared_opp;
long unsigned int current_rate;
struct dev_pm_opp *current_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
struct icc_path **paths;
unsigned int path_count;
bool enabled;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_opp_supply *sod_supplies;
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
5.19: ✅struct opp_table {
struct list_head node;
struct list_head lazy;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
unsigned int parsed_static_opps;
enum opp_table_access shared_opp;
long unsigned int current_rate;
struct dev_pm_opp *current_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
struct icc_path **paths;
unsigned int path_count;
bool enabled;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_opp_supply *sod_supplies;
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
6.2: ✅struct opp_table {
struct list_head node;
struct list_head lazy;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
unsigned int parsed_static_opps;
enum opp_table_access shared_opp;
long unsigned int rate_clk_single;
struct dev_pm_opp *current_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
config_clks_t config_clks;
struct clk **clks;
struct clk *clk;
int clk_count;
config_regulators_t config_regulators;
struct regulator **regulators;
int regulator_count;
struct icc_path **paths;
unsigned int path_count;
bool enabled;
bool genpd_performance_state;
bool is_genpd;
struct dentry *dentry;
char dentry_name[255];
};
6.5: ✅struct opp_table {
struct list_head node;
struct list_head lazy;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
unsigned int parsed_static_opps;
enum opp_table_access shared_opp;
long unsigned int rate_clk_single;
struct dev_pm_opp *current_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
config_clks_t config_clks;
struct clk **clks;
struct clk *clk;
int clk_count;
config_regulators_t config_regulators;
struct regulator **regulators;
int regulator_count;
struct icc_path **paths;
unsigned int path_count;
bool enabled;
bool is_genpd;
int (*set_required_opps)(struct device *, struct opp_table *, struct dev_pm_opp *, bool);
struct dentry *dentry;
char dentry_name[255];
};
6.8: ✅struct opp_table {
struct list_head node;
struct list_head lazy;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
unsigned int parsed_static_opps;
enum opp_table_access shared_opp;
long unsigned int current_rate_single_clk;
struct dev_pm_opp *current_opp;
struct dev_pm_opp *suspend_opp;
struct opp_table **required_opp_tables;
struct device **required_devs;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
config_clks_t config_clks;
struct clk **clks;
struct clk *clk;
int clk_count;
config_regulators_t config_regulators;
struct regulator **regulators;
int regulator_count;
struct icc_path **paths;
unsigned int path_count;
bool enabled;
bool is_genpd;
struct dentry *dentry;
char dentry_name[255];
};
arm64: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
armhf: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
ppc64el: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
riscv64: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
aws: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
azure: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
gcp: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
lowlatency: ✅struct opp_table {
struct list_head node;
struct blocking_notifier_head head;
struct list_head dev_list;
struct list_head opp_list;
struct kref kref;
struct kref list_kref;
struct mutex lock;
struct device_node *np;
long unsigned int clock_latency_ns_max;
unsigned int voltage_tolerance_v1;
bool parsed_static_opps;
enum opp_table_access shared_opp;
struct dev_pm_opp *suspend_opp;
struct mutex genpd_virt_dev_lock;
struct device **genpd_virt_devs;
struct opp_table **required_opp_tables;
unsigned int required_opp_count;
unsigned int *supported_hw;
unsigned int supported_hw_count;
const char *prop_name;
struct clk *clk;
struct regulator **regulators;
int regulator_count;
bool genpd_performance_state;
bool is_genpd;
int (*set_opp)(struct dev_pm_set_opp_data *);
struct dev_pm_set_opp_data *set_opp_data;
struct dentry *dentry;
char dentry_name[255];
};
Regular
4.15 and 4.18 ⚠️int (*get_pstate)(struct device *, long unsigned int)
4.18 and 5.0 ⚠️struct kref list_kref
bool parsed_static_opps
struct mutex genpd_virt_dev_lock
struct device **genpd_virt_devs
struct opp_table **required_opp_tables
unsigned int required_opp_count
bool is_genpd
unsigned int regulator_count ➡️ int regulator_count
5.0 and 5.3 ✅
5.3 and 5.4 ✅
5.4 and 5.8 ⚠️bool regulator_enabled
struct icc_path **paths
unsigned int path_count
struct kref list_kref
bool parsed_static_opps ➡️ unsigned int parsed_static_opps
5.8 and 5.11 ⚠️bool enabled
bool regulator_enabled
5.11 and 5.13 ⚠️struct list_head lazy
long unsigned int current_rate
struct dev_pm_opp *current_opp
struct dev_pm_opp_supply *sod_supplies
5.13 and 5.15 ✅
5.15 and 5.19 ✅
5.19 and 6.2 ⚠️long unsigned int rate_clk_single
config_clks_t config_clks
struct clk **clks
int clk_count
config_regulators_t config_regulators
long unsigned int current_rate
int (*set_opp)(struct dev_pm_set_opp_data *)
struct dev_pm_opp_supply *sod_supplies
struct dev_pm_set_opp_data *set_opp_data
6.2 and 6.5 ⚠️int (*set_required_opps)(struct device *, struct opp_table *, struct dev_pm_opp *, bool)
bool genpd_performance_state
6.5 and 6.8 ⚠️long unsigned int current_rate_single_clk
struct device **required_devs
long unsigned int rate_clk_single
struct mutex genpd_virt_dev_lock
struct device **genpd_virt_devs
int (*set_required_opps)(struct device *, struct opp_table *, struct dev_pm_opp *, bool)
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ⚠️struct clk *clk ➡️ struct clk *clk
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅