Lines Matching refs:policy

38 	struct cpufreq_policy *policy = cdbs->shared->policy;  in dbs_check_cpu()  local
64 for_each_cpu(j, policy->cpus) { in dbs_check_cpu()
169 void gov_queue_work(struct dbs_data *dbs_data, struct cpufreq_policy *policy, in gov_queue_work() argument
184 for_each_cpu(i, policy->cpus) in gov_queue_work()
191 struct cpufreq_policy *policy) in gov_cancel_work() argument
196 for_each_cpu(i, policy->cpus) { in gov_cancel_work()
206 if (policy_is_shared(shared->policy)) { in need_load_eval()
225 struct cpufreq_policy *policy; in dbs_timer() local
232 policy = shared->policy; in dbs_timer()
238 if (!policy) in dbs_timer()
241 dbs_data = policy->governor_data; in dbs_timer()
257 gov_queue_work(dbs_data, policy, delay, modify_all); in dbs_timer()
275 static int alloc_common_dbs_info(struct cpufreq_policy *policy, in alloc_common_dbs_info() argument
287 for_each_cpu(j, policy->related_cpus) in alloc_common_dbs_info()
293 static void free_common_dbs_info(struct cpufreq_policy *policy, in free_common_dbs_info() argument
296 struct cpu_dbs_info *cdbs = cdata->get_cpu_cdbs(policy->cpu); in free_common_dbs_info()
300 for_each_cpu(j, policy->cpus) in free_common_dbs_info()
306 static int cpufreq_governor_init(struct cpufreq_policy *policy, in cpufreq_governor_init() argument
314 if (policy->governor_data) in cpufreq_governor_init()
321 ret = alloc_common_dbs_info(policy, cdata); in cpufreq_governor_init()
326 policy->governor_data = dbs_data; in cpufreq_governor_init()
334 ret = alloc_common_dbs_info(policy, cdata); in cpufreq_governor_init()
341 ret = cdata->init(dbs_data, !policy->governor->initialized); in cpufreq_governor_init()
346 latency = policy->cpuinfo.transition_latency / 1000; in cpufreq_governor_init()
359 policy->governor_data = dbs_data; in cpufreq_governor_init()
361 ret = sysfs_create_group(get_governor_parent_kobj(policy), in cpufreq_governor_init()
369 policy->governor_data = NULL; in cpufreq_governor_init()
373 cdata->exit(dbs_data, !policy->governor->initialized); in cpufreq_governor_init()
375 free_common_dbs_info(policy, cdata); in cpufreq_governor_init()
381 static int cpufreq_governor_exit(struct cpufreq_policy *policy, in cpufreq_governor_exit() argument
385 struct cpu_dbs_info *cdbs = cdata->get_cpu_cdbs(policy->cpu); in cpufreq_governor_exit()
388 if (!cdbs->shared || cdbs->shared->policy) in cpufreq_governor_exit()
392 sysfs_remove_group(get_governor_parent_kobj(policy), in cpufreq_governor_exit()
395 policy->governor_data = NULL; in cpufreq_governor_exit()
400 cdata->exit(dbs_data, policy->governor->initialized == 1); in cpufreq_governor_exit()
403 policy->governor_data = NULL; in cpufreq_governor_exit()
406 free_common_dbs_info(policy, cdata); in cpufreq_governor_exit()
410 static int cpufreq_governor_start(struct cpufreq_policy *policy, in cpufreq_governor_start() argument
414 unsigned int sampling_rate, ignore_nice, j, cpu = policy->cpu; in cpufreq_governor_start()
419 if (!policy->cur) in cpufreq_governor_start()
423 if (!shared || shared->policy) in cpufreq_governor_start()
439 shared->policy = policy; in cpufreq_governor_start()
443 for_each_cpu(j, policy->cpus) { in cpufreq_governor_start()
466 cs_dbs_info->requested_freq = policy->cur; in cpufreq_governor_start()
476 gov_queue_work(dbs_data, policy, delay_for_sampling_rate(sampling_rate), in cpufreq_governor_start()
481 static int cpufreq_governor_stop(struct cpufreq_policy *policy, in cpufreq_governor_stop() argument
484 struct cpu_dbs_info *cdbs = dbs_data->cdata->get_cpu_cdbs(policy->cpu); in cpufreq_governor_stop()
488 if (!shared || !shared->policy) in cpufreq_governor_stop()
497 shared->policy = NULL; in cpufreq_governor_stop()
500 gov_cancel_work(dbs_data, policy); in cpufreq_governor_stop()
506 static int cpufreq_governor_limits(struct cpufreq_policy *policy, in cpufreq_governor_limits() argument
510 unsigned int cpu = policy->cpu; in cpufreq_governor_limits()
514 if (!cdbs->shared || !cdbs->shared->policy) in cpufreq_governor_limits()
518 if (policy->max < cdbs->shared->policy->cur) in cpufreq_governor_limits()
519 __cpufreq_driver_target(cdbs->shared->policy, policy->max, in cpufreq_governor_limits()
521 else if (policy->min > cdbs->shared->policy->cur) in cpufreq_governor_limits()
522 __cpufreq_driver_target(cdbs->shared->policy, policy->min, in cpufreq_governor_limits()
530 int cpufreq_governor_dbs(struct cpufreq_policy *policy, in cpufreq_governor_dbs() argument
540 dbs_data = policy->governor_data; in cpufreq_governor_dbs()
551 ret = cpufreq_governor_init(policy, dbs_data, cdata); in cpufreq_governor_dbs()
554 ret = cpufreq_governor_exit(policy, dbs_data); in cpufreq_governor_dbs()
557 ret = cpufreq_governor_start(policy, dbs_data); in cpufreq_governor_dbs()
560 ret = cpufreq_governor_stop(policy, dbs_data); in cpufreq_governor_dbs()
563 ret = cpufreq_governor_limits(policy, dbs_data); in cpufreq_governor_dbs()