Lines Matching refs:policy
31 struct cpufreq_policy *policy = cpufreq_cpu_get_raw(cpu); in scmi_cpufreq_get_rate() local
33 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_get_rate()
49 scmi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index) in scmi_cpufreq_set_target() argument
52 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_set_target()
54 u64 freq = policy->freq_table[index].frequency; in scmi_cpufreq_set_target()
58 arch_set_freq_scale(policy->related_cpus, freq, in scmi_cpufreq_set_target()
59 policy->cpuinfo.max_freq); in scmi_cpufreq_set_target()
63 static unsigned int scmi_cpufreq_fast_switch(struct cpufreq_policy *policy, in scmi_cpufreq_fast_switch() argument
66 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_fast_switch()
71 arch_set_freq_scale(policy->related_cpus, target_freq, in scmi_cpufreq_fast_switch()
72 policy->cpuinfo.max_freq); in scmi_cpufreq_fast_switch()
133 static int scmi_cpufreq_init(struct cpufreq_policy *policy) in scmi_cpufreq_init() argument
142 cpu_dev = get_cpu_device(policy->cpu); in scmi_cpufreq_init()
144 pr_err("failed to get cpu%d device\n", policy->cpu); in scmi_cpufreq_init()
154 ret = scmi_get_sharing_cpus(cpu_dev, policy->cpus); in scmi_cpufreq_init()
160 ret = dev_pm_opp_set_sharing_cpus(cpu_dev, policy->cpus); in scmi_cpufreq_init()
189 policy->driver_data = priv; in scmi_cpufreq_init()
190 policy->freq_table = freq_table; in scmi_cpufreq_init()
193 policy->dvfs_possible_from_any_cpu = true; in scmi_cpufreq_init()
199 policy->cpuinfo.transition_latency = latency; in scmi_cpufreq_init()
201 policy->fast_switch_possible = true; in scmi_cpufreq_init()
203 em_register_perf_domain(policy->cpus, nr_opp, &em_cb); in scmi_cpufreq_init()
215 static int scmi_cpufreq_exit(struct cpufreq_policy *policy) in scmi_cpufreq_exit() argument
217 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_exit()
219 dev_pm_opp_free_cpufreq_table(priv->cpu_dev, &policy->freq_table); in scmi_cpufreq_exit()