Lines Matching refs:dbs_data
25 static struct attribute_group *get_sysfs_attr(struct dbs_data *dbs_data) in get_sysfs_attr() argument
28 return dbs_data->cdata->attr_group_gov_pol; in get_sysfs_attr()
30 return dbs_data->cdata->attr_group_gov_sys; in get_sysfs_attr()
33 void dbs_check_cpu(struct dbs_data *dbs_data, int cpu) in dbs_check_cpu() argument
35 struct cpu_dbs_common_info *cdbs = dbs_data->cdata->get_cpu_cdbs(cpu); in dbs_check_cpu()
36 struct od_dbs_tuners *od_tuners = dbs_data->tuners; in dbs_check_cpu()
37 struct cs_dbs_tuners *cs_tuners = dbs_data->tuners; in dbs_check_cpu()
44 if (dbs_data->cdata->governor == GOV_ONDEMAND) { in dbs_check_cpu()
46 dbs_data->cdata->get_cpu_dbs_info_s(cpu); in dbs_check_cpu()
73 j_cdbs = dbs_data->cdata->get_cpu_cdbs(j); in dbs_check_cpu()
81 if (dbs_data->cdata->governor == GOV_ONDEMAND) in dbs_check_cpu()
159 dbs_data->cdata->gov_check_cpu(cpu, max_load); in dbs_check_cpu()
163 static inline void __gov_queue_work(int cpu, struct dbs_data *dbs_data, in __gov_queue_work() argument
166 struct cpu_dbs_common_info *cdbs = dbs_data->cdata->get_cpu_cdbs(cpu); in __gov_queue_work()
171 void gov_queue_work(struct dbs_data *dbs_data, struct cpufreq_policy *policy, in gov_queue_work() argument
188 __gov_queue_work(raw_smp_processor_id(), dbs_data, delay); in gov_queue_work()
191 __gov_queue_work(i, dbs_data, delay); in gov_queue_work()
199 static inline void gov_cancel_work(struct dbs_data *dbs_data, in gov_cancel_work() argument
206 cdbs = dbs_data->cdata->get_cpu_cdbs(i); in gov_cancel_work()
230 static void set_sampling_rate(struct dbs_data *dbs_data, in set_sampling_rate() argument
233 if (dbs_data->cdata->governor == GOV_CONSERVATIVE) { in set_sampling_rate()
234 struct cs_dbs_tuners *cs_tuners = dbs_data->tuners; in set_sampling_rate()
237 struct od_dbs_tuners *od_tuners = dbs_data->tuners; in set_sampling_rate()
245 struct dbs_data *dbs_data; in cpufreq_governor_dbs() local
257 dbs_data = policy->governor_data; in cpufreq_governor_dbs()
259 dbs_data = cdata->gdbs_data; in cpufreq_governor_dbs()
261 WARN_ON(!dbs_data && (event != CPUFREQ_GOV_POLICY_INIT)); in cpufreq_governor_dbs()
266 WARN_ON(dbs_data); in cpufreq_governor_dbs()
267 } else if (dbs_data) { in cpufreq_governor_dbs()
268 dbs_data->usage_count++; in cpufreq_governor_dbs()
269 policy->governor_data = dbs_data; in cpufreq_governor_dbs()
273 dbs_data = kzalloc(sizeof(*dbs_data), GFP_KERNEL); in cpufreq_governor_dbs()
274 if (!dbs_data) { in cpufreq_governor_dbs()
279 dbs_data->cdata = cdata; in cpufreq_governor_dbs()
280 dbs_data->usage_count = 1; in cpufreq_governor_dbs()
281 rc = cdata->init(dbs_data); in cpufreq_governor_dbs()
284 kfree(dbs_data); in cpufreq_governor_dbs()
292 get_sysfs_attr(dbs_data)); in cpufreq_governor_dbs()
294 cdata->exit(dbs_data); in cpufreq_governor_dbs()
295 kfree(dbs_data); in cpufreq_governor_dbs()
299 policy->governor_data = dbs_data; in cpufreq_governor_dbs()
307 dbs_data->min_sampling_rate = max(dbs_data->min_sampling_rate, in cpufreq_governor_dbs()
309 set_sampling_rate(dbs_data, max(dbs_data->min_sampling_rate, in cpufreq_governor_dbs()
314 struct cs_ops *cs_ops = dbs_data->cdata->gov_ops; in cpufreq_governor_dbs()
321 cdata->gdbs_data = dbs_data; in cpufreq_governor_dbs()
325 if (!--dbs_data->usage_count) { in cpufreq_governor_dbs()
327 get_sysfs_attr(dbs_data)); in cpufreq_governor_dbs()
332 if ((dbs_data->cdata->governor == GOV_CONSERVATIVE) && in cpufreq_governor_dbs()
334 struct cs_ops *cs_ops = dbs_data->cdata->gov_ops; in cpufreq_governor_dbs()
340 cdata->exit(dbs_data); in cpufreq_governor_dbs()
341 kfree(dbs_data); in cpufreq_governor_dbs()
349 cpu_cdbs = dbs_data->cdata->get_cpu_cdbs(cpu); in cpufreq_governor_dbs()
351 if (dbs_data->cdata->governor == GOV_CONSERVATIVE) { in cpufreq_governor_dbs()
352 cs_tuners = dbs_data->tuners; in cpufreq_governor_dbs()
353 cs_dbs_info = dbs_data->cdata->get_cpu_dbs_info_s(cpu); in cpufreq_governor_dbs()
357 od_tuners = dbs_data->tuners; in cpufreq_governor_dbs()
358 od_dbs_info = dbs_data->cdata->get_cpu_dbs_info_s(cpu); in cpufreq_governor_dbs()
361 od_ops = dbs_data->cdata->gov_ops; in cpufreq_governor_dbs()
370 mutex_lock(&dbs_data->mutex); in cpufreq_governor_dbs()
374 dbs_data->cdata->get_cpu_cdbs(j); in cpufreq_governor_dbs()
393 dbs_data->cdata->gov_dbs_timer); in cpufreq_governor_dbs()
396 if (dbs_data->cdata->governor == GOV_CONSERVATIVE) { in cpufreq_governor_dbs()
406 mutex_unlock(&dbs_data->mutex); in cpufreq_governor_dbs()
411 gov_queue_work(dbs_data, policy, in cpufreq_governor_dbs()
416 if (dbs_data->cdata->governor == GOV_CONSERVATIVE) in cpufreq_governor_dbs()
419 gov_cancel_work(dbs_data, policy); in cpufreq_governor_dbs()
421 mutex_lock(&dbs_data->mutex); in cpufreq_governor_dbs()
425 mutex_unlock(&dbs_data->mutex); in cpufreq_governor_dbs()
430 mutex_lock(&dbs_data->mutex); in cpufreq_governor_dbs()
432 mutex_unlock(&dbs_data->mutex); in cpufreq_governor_dbs()
442 dbs_check_cpu(dbs_data, cpu); in cpufreq_governor_dbs()
444 mutex_unlock(&dbs_data->mutex); in cpufreq_governor_dbs()