Lines Matching refs:policy

157 static void cppc_cpufreq_cpu_fie_init(struct cpufreq_policy *policy)
165 for_each_cpu(cpu, policy->cpus) {
168 cppc_fi->cpu_data = policy->driver_data;
187 topology_set_scale_freq_source(&cppc_sftd, policy->cpus);
191 * We free all the resources on policy's removal and not on CPU removal as the
196 * We just need to make sure to remove them all on policy->exit().
198 static void cppc_cpufreq_cpu_fie_exit(struct cpufreq_policy *policy)
206 /* policy->cpus will be empty here, use related_cpus instead */
207 topology_clear_scale_freq_source(SCALE_FREQ_SOURCE_CPPC, policy->related_cpus);
209 for_each_cpu(cpu, policy->related_cpus) {
270 static inline void cppc_cpufreq_cpu_fie_init(struct cpufreq_policy *policy)
274 static inline void cppc_cpufreq_cpu_fie_exit(struct cpufreq_policy *policy)
287 static int cppc_cpufreq_set_target(struct cpufreq_policy *policy,
291 struct cppc_cpudata *cpu_data = policy->driver_data;
292 unsigned int cpu = policy->cpu;
303 freqs.old = policy->cur;
306 cpufreq_freq_transition_begin(policy, &freqs);
308 cpufreq_freq_transition_end(policy, &freqs, ret != 0);
317 static unsigned int cppc_cpufreq_fast_switch(struct cpufreq_policy *policy,
320 struct cppc_cpudata *cpu_data = policy->driver_data;
321 unsigned int cpu = policy->cpu;
338 static int cppc_verify_policy(struct cpufreq_policy_data *policy)
340 cpufreq_verify_within_cpu_limits(policy);
378 static void cppc_cpufreq_register_em(struct cpufreq_policy *policy);
388 static unsigned int get_perf_level_count(struct cpufreq_policy *policy)
393 int cpu = policy->cpu;
395 cpu_data = policy->driver_data;
422 struct cpufreq_policy *policy;
427 policy = cpufreq_cpu_get_raw(cpu_dev->id);
428 cpu_data = policy->driver_data;
489 struct cpufreq_policy *policy;
494 policy = cpufreq_cpu_get_raw(cpu_dev->id);
495 cpu_data = policy->driver_data;
544 static void cppc_cpufreq_register_em(struct cpufreq_policy *policy)
550 cpu_data = policy->driver_data;
551 em_dev_register_perf_domain(get_cpu_device(policy->cpu),
552 get_perf_level_count(policy), &em_cb,
599 static void cppc_cpufreq_put_cpu_data(struct cpufreq_policy *policy)
601 struct cppc_cpudata *cpu_data = policy->driver_data;
606 policy->driver_data = NULL;
609 static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
611 unsigned int cpu = policy->cpu;
622 policy->driver_data = cpu_data;
628 policy->min = cppc_perf_to_khz(caps, caps->lowest_nonlinear_perf);
629 policy->max = cppc_perf_to_khz(caps, caps->nominal_perf);
636 policy->cpuinfo.min_freq = cppc_perf_to_khz(caps, caps->lowest_perf);
637 policy->cpuinfo.max_freq = cppc_perf_to_khz(caps, caps->nominal_perf);
639 policy->transition_delay_us = cppc_cpufreq_get_transition_delay_us(cpu);
640 policy->shared_type = cpu_data->shared_type;
642 switch (policy->shared_type) {
645 /* Nothing to be done - we'll have a policy for each CPU */
649 * All CPUs in the domain will share a policy and all cpufreq
651 * in policy->driver_data.
653 cpumask_copy(policy->cpus, cpu_data->shared_cpu_map);
657 policy->shared_type);
662 policy->fast_switch_possible = cppc_allow_fast_switch();
663 policy->dvfs_possible_from_any_cpu = true;
672 /* Set policy->cur to max now. The governors will adjust later. */
673 policy->cur = cppc_perf_to_khz(caps, caps->highest_perf);
683 cppc_cpufreq_cpu_fie_init(policy);
687 cppc_cpufreq_put_cpu_data(policy);
691 static int cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
693 struct cppc_cpudata *cpu_data = policy->driver_data;
695 unsigned int cpu = policy->cpu;
698 cppc_cpufreq_cpu_fie_exit(policy);
707 cppc_cpufreq_put_cpu_data(policy);
743 struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
744 struct cppc_cpudata *cpu_data = policy->driver_data;
748 cpufreq_cpu_put(policy);
766 static int cppc_cpufreq_set_boost(struct cpufreq_policy *policy, int state)
768 struct cppc_cpudata *cpu_data = policy->driver_data;
778 policy->max = cppc_perf_to_khz(caps, caps->highest_perf);
780 policy->max = cppc_perf_to_khz(caps, caps->nominal_perf);
781 policy->cpuinfo.max_freq = policy->max;
783 ret = freq_qos_update_request(policy->max_freq_req, policy->max);
790 static ssize_t show_freqdomain_cpus(struct cpufreq_policy *policy, char *buf)
792 struct cppc_cpudata *cpu_data = policy->driver_data;
824 struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
825 struct cppc_cpudata *cpu_data = policy->driver_data;
829 cpufreq_cpu_put(policy);