Lines Matching refs:policy
23 * @policy: pointer to policy struct where freq is being set
28 static int cpufreq_set(struct cpufreq_policy *policy, unsigned int freq)
31 unsigned int *setspeed = policy->governor_data;
33 pr_debug("cpufreq_set for cpu %u, freq %u kHz\n", policy->cpu, freq);
36 if (!per_cpu(cpu_is_managed, policy->cpu))
41 ret = __cpufreq_driver_target(policy, freq, CPUFREQ_RELATION_L);
47 static ssize_t show_speed(struct cpufreq_policy *policy, char *buf)
49 return sprintf(buf, "%u\n", policy->cur);
52 static int cpufreq_userspace_policy_init(struct cpufreq_policy *policy)
60 policy->governor_data = setspeed;
64 static void cpufreq_userspace_policy_exit(struct cpufreq_policy *policy)
67 kfree(policy->governor_data);
68 policy->governor_data = NULL;
72 static int cpufreq_userspace_policy_start(struct cpufreq_policy *policy)
74 unsigned int *setspeed = policy->governor_data;
76 BUG_ON(!policy->cur);
77 pr_debug("started managing cpu %u\n", policy->cpu);
80 per_cpu(cpu_is_managed, policy->cpu) = 1;
81 *setspeed = policy->cur;
86 static void cpufreq_userspace_policy_stop(struct cpufreq_policy *policy)
88 unsigned int *setspeed = policy->governor_data;
90 pr_debug("managing cpu %u stopped\n", policy->cpu);
93 per_cpu(cpu_is_managed, policy->cpu) = 0;
98 static void cpufreq_userspace_policy_limits(struct cpufreq_policy *policy)
100 unsigned int *setspeed = policy->governor_data;
105 policy->cpu, policy->min, policy->max, policy->cur, *setspeed);
107 if (policy->max < *setspeed)
108 __cpufreq_driver_target(policy, policy->max, CPUFREQ_RELATION_H);
109 else if (policy->min > *setspeed)
110 __cpufreq_driver_target(policy, policy->min, CPUFREQ_RELATION_L);
112 __cpufreq_driver_target(policy, *setspeed, CPUFREQ_RELATION_L);
131 MODULE_DESCRIPTION("CPUfreq policy governor 'userspace'");