Commit bf76bb20 authored by Ionela Voinescu's avatar Ionela Voinescu Committed by Rafael J. Wysocki

cppc_cpufreq: clarify support for coordination types

The previous coordination type handling in the cppc_cpufreq init code
created some confusion: the comment mentioned "Support only SW_ANY for
now" while only the SW_ALL/ALL case resulted in a failure. The other
coordination types (HW_ALL/HW, NONE) were silently supported.

Clarify support for coordination types while describing in comments the
intended behavior.
Signed-off-by: default avatarIonela Voinescu <ionela.voinescu@arm.com>
Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Tested-by: default avatarMian Yousaf Kaukab <ykaukab@suse.de>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent d2641a5c
...@@ -244,7 +244,7 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy) ...@@ -244,7 +244,7 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
struct cppc_cpudata *cpu_data = all_cpu_data[policy->cpu]; struct cppc_cpudata *cpu_data = all_cpu_data[policy->cpu];
struct cppc_perf_caps *caps = &cpu_data->perf_caps; struct cppc_perf_caps *caps = &cpu_data->perf_caps;
unsigned int cpu = policy->cpu; unsigned int cpu = policy->cpu;
int ret = 0; int i, ret = 0;
cpu_data->cpu = cpu; cpu_data->cpu = cpu;
ret = cppc_get_perf_caps(cpu, caps); ret = cppc_get_perf_caps(cpu, caps);
...@@ -281,9 +281,13 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy) ...@@ -281,9 +281,13 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
policy->transition_delay_us = cppc_cpufreq_get_transition_delay_us(cpu); policy->transition_delay_us = cppc_cpufreq_get_transition_delay_us(cpu);
policy->shared_type = cpu_data->shared_type; policy->shared_type = cpu_data->shared_type;
if (policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) { switch (policy->shared_type) {
int i; case CPUFREQ_SHARED_TYPE_HW:
case CPUFREQ_SHARED_TYPE_NONE:
/* Nothing to be done - we'll have a policy for each CPU */
break;
case CPUFREQ_SHARED_TYPE_ANY:
/* All CPUs in the domain will share a policy */
cpumask_copy(policy->cpus, cpu_data->shared_cpu_map); cpumask_copy(policy->cpus, cpu_data->shared_cpu_map);
for_each_cpu(i, policy->cpus) { for_each_cpu(i, policy->cpus) {
...@@ -293,9 +297,10 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy) ...@@ -293,9 +297,10 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
memcpy(&all_cpu_data[i]->perf_caps, caps, memcpy(&all_cpu_data[i]->perf_caps, caps,
sizeof(cpu_data->perf_caps)); sizeof(cpu_data->perf_caps));
} }
} else if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL) { break;
/* Support only SW_ANY for now. */ default:
pr_debug("Unsupported CPU co-ord type\n"); pr_debug("Unsupported CPU co-ord type: %d\n",
policy->shared_type);
return -EFAULT; return -EFAULT;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment