diff options
Diffstat (limited to 'drivers/cpufreq/cppc_cpufreq.c')
-rw-r--r-- | drivers/cpufreq/cppc_cpufreq.c | 14 |
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; |