.max_transition_latency = TRANSITION_LATENCY_LIMIT,
.owner = THIS_MODULE,
},
- .governor = GOV_CONSERVATIVE,
.kobj_type = { .default_attrs = cs_attributes },
.get_cpu_cdbs = get_cpu_cdbs,
- .get_cpu_dbs_info_s = get_cpu_dbs_info_s,
.gov_dbs_timer = cs_dbs_timer,
.init = cs_init,
.exit = cs_exit,
static struct cpu_dbs_info *get_cpu_cdbs(int cpu) \
{ \
return &per_cpu(_dbs_info, cpu).cdbs; \
-} \
- \
-static void *get_cpu_dbs_info_s(int cpu) \
-{ \
- return &per_cpu(_dbs_info, cpu); \
}
/*
/* Common Governor data across policies */
struct dbs_governor {
struct cpufreq_governor gov;
-
- #define GOV_ONDEMAND 0
- #define GOV_CONSERVATIVE 1
- int governor;
struct kobj_type kobj_type;
/*
struct dbs_data *gdbs_data;
struct cpu_dbs_info *(*get_cpu_cdbs)(int cpu);
- void *(*get_cpu_dbs_info_s)(int cpu);
unsigned int (*gov_dbs_timer)(struct cpufreq_policy *policy);
int (*init)(struct dbs_data *dbs_data, bool notify);
void (*exit)(struct dbs_data *dbs_data, bool notify);
void (*start)(struct cpufreq_policy *policy);
-
- /* Governor specific ops, see below */
- void *gov_ops;
};
static inline struct dbs_governor *dbs_governor_of(struct cpufreq_policy *policy)
return container_of(policy->governor, struct dbs_governor, gov);
}
-/* Governor specific ops, will be passed to dbs_data->gov_ops */
+/* Governor specific operations */
struct od_ops {
void (*powersave_bias_init_cpu)(int cpu);
unsigned int (*powersave_bias_target)(struct cpufreq_policy *policy,
.max_transition_latency = TRANSITION_LATENCY_LIMIT,
.owner = THIS_MODULE,
},
- .governor = GOV_ONDEMAND,
.kobj_type = { .default_attrs = od_attributes },
.get_cpu_cdbs = get_cpu_cdbs,
- .get_cpu_dbs_info_s = get_cpu_dbs_info_s,
.gov_dbs_timer = od_dbs_timer,
- .gov_ops = &od_ops,
.init = od_init,
.exit = od_exit,
.start = od_start,