Lines Matching refs:policy
164 static void cppc_cpufreq_cpu_fie_init(struct cpufreq_policy *policy)
172 for_each_cpu(cpu, policy->cpus) {
175 cppc_fi->cpu_data = policy->driver_data;
194 topology_set_scale_freq_source(&cppc_sftd, policy->cpus);
198 * We free all the resources on policy's removal and not on CPU removal as the
203 * We just need to make sure to remove them all on policy->exit().
205 static void cppc_cpufreq_cpu_fie_exit(struct cpufreq_policy *policy)
213 /* policy->cpus will be empty here, use related_cpus instead */
214 topology_clear_scale_freq_source(SCALE_FREQ_SOURCE_CPPC, policy->related_cpus);
216 for_each_cpu(cpu, policy->related_cpus) {
277 static inline void cppc_cpufreq_cpu_fie_init(struct cpufreq_policy *policy)
281 static inline void cppc_cpufreq_cpu_fie_exit(struct cpufreq_policy *policy)
381 static int cppc_cpufreq_set_target(struct cpufreq_policy *policy,
386 struct cppc_cpudata *cpu_data = policy->driver_data;
387 unsigned int cpu = policy->cpu;
398 freqs.old = policy->cur;
401 cpufreq_freq_transition_begin(policy, &freqs);
403 cpufreq_freq_transition_end(policy, &freqs, ret != 0);
412 static unsigned int cppc_cpufreq_fast_switch(struct cpufreq_policy *policy,
415 struct cppc_cpudata *cpu_data = policy->driver_data;
416 unsigned int cpu = policy->cpu;
433 static int cppc_verify_policy(struct cpufreq_policy_data *policy)
435 cpufreq_verify_within_cpu_limits(policy);
473 static void cppc_cpufreq_register_em(struct cpufreq_policy *policy);
483 static unsigned int get_perf_level_count(struct cpufreq_policy *policy)
488 int cpu = policy->cpu;
490 cpu_data = policy->driver_data;
517 struct cpufreq_policy *policy;
522 policy = cpufreq_cpu_get_raw(cpu_dev->id);
523 cpu_data = policy->driver_data;
584 struct cpufreq_policy *policy;
589 policy = cpufreq_cpu_get_raw(cpu_dev->id);
590 cpu_data = policy->driver_data;
639 static void cppc_cpufreq_register_em(struct cpufreq_policy *policy)
645 cpu_data = policy->driver_data;
646 em_dev_register_perf_domain(get_cpu_device(policy->cpu),
647 get_perf_level_count(policy), &em_cb,
698 static void cppc_cpufreq_put_cpu_data(struct cpufreq_policy *policy)
700 struct cppc_cpudata *cpu_data = policy->driver_data;
705 policy->driver_data = NULL;
708 static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
710 unsigned int cpu = policy->cpu;
721 policy->driver_data = cpu_data;
727 policy->min = cppc_cpufreq_perf_to_khz(cpu_data,
729 policy->max = cppc_cpufreq_perf_to_khz(cpu_data,
737 policy->cpuinfo.min_freq = cppc_cpufreq_perf_to_khz(cpu_data,
739 policy->cpuinfo.max_freq = cppc_cpufreq_perf_to_khz(cpu_data,
742 policy->transition_delay_us = cppc_cpufreq_get_transition_delay_us(cpu);
743 policy->shared_type = cpu_data->shared_type;
745 switch (policy->shared_type) {
748 /* Nothing to be done - we'll have a policy for each CPU */
752 * All CPUs in the domain will share a policy and all cpufreq
754 * in policy->driver_data.
756 cpumask_copy(policy->cpus, cpu_data->shared_cpu_map);
760 policy->shared_type);
765 policy->fast_switch_possible = cppc_allow_fast_switch();
766 policy->dvfs_possible_from_any_cpu = true;
775 /* Set policy->cur to max now. The governors will adjust later. */
776 policy->cur = cppc_cpufreq_perf_to_khz(cpu_data, caps->highest_perf);
786 cppc_cpufreq_cpu_fie_init(policy);
790 cppc_cpufreq_put_cpu_data(policy);
794 static int cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
796 struct cppc_cpudata *cpu_data = policy->driver_data;
798 unsigned int cpu = policy->cpu;
801 cppc_cpufreq_cpu_fie_exit(policy);
810 cppc_cpufreq_put_cpu_data(policy);
846 struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
847 struct cppc_cpudata *cpu_data = policy->driver_data;
851 cpufreq_cpu_put(policy);
869 static int cppc_cpufreq_set_boost(struct cpufreq_policy *policy, int state)
871 struct cppc_cpudata *cpu_data = policy->driver_data;
881 policy->max = cppc_cpufreq_perf_to_khz(cpu_data,
884 policy->max = cppc_cpufreq_perf_to_khz(cpu_data,
886 policy->cpuinfo.max_freq = policy->max;
888 ret = freq_qos_update_request(policy->max_freq_req, policy->max);
895 static ssize_t show_freqdomain_cpus(struct cpufreq_policy *policy, char *buf)
897 struct cppc_cpudata *cpu_data = policy->driver_data;
929 struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
930 struct cppc_cpudata *cpu_data = policy->driver_data;
934 cpufreq_cpu_put(policy);