aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/cppc_cpufreq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/cpufreq/cppc_cpufreq.c')
-rw-r--r--drivers/cpufreq/cppc_cpufreq.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c
index 38f65c371139..bc5fc1630876 100644
--- a/drivers/cpufreq/cppc_cpufreq.c
+++ b/drivers/cpufreq/cppc_cpufreq.c
@@ -166,9 +166,19 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
166 NSEC_PER_USEC; 166 NSEC_PER_USEC;
167 policy->shared_type = cpu->shared_type; 167 policy->shared_type = cpu->shared_type;
168 168
169 if (policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) 169 if (policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) {
170 int i;
171
170 cpumask_copy(policy->cpus, cpu->shared_cpu_map); 172 cpumask_copy(policy->cpus, cpu->shared_cpu_map);
171 else if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL) { 173
174 for_each_cpu(i, policy->cpus) {
175 if (unlikely(i == policy->cpu))
176 continue;
177
178 memcpy(&all_cpu_data[i]->perf_caps, &cpu->perf_caps,
179 sizeof(cpu->perf_caps));
180 }
181 } else if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL) {
172 /* Support only SW_ANY for now. */ 182 /* Support only SW_ANY for now. */
173 pr_debug("Unsupported CPU co-ord type\n"); 183 pr_debug("Unsupported CPU co-ord type\n");
174 return -EFAULT; 184 return -EFAULT;