Merge tag 'v4.4.28' into linux-linaro-lsk-v4.4
[firefly-linux-kernel-4.4.55.git] / drivers / cpufreq / intel_pstate.c
index 6e80e42982748fcd9695b694dd936141ba2ce353..7ff8b15a34225cbf74130d8dc10fa0c9a1e769d6 100644 (file)
@@ -285,14 +285,14 @@ static void intel_pstate_hwp_set(void)
        int min, hw_min, max, hw_max, cpu, range, adj_range;
        u64 value, cap;
 
-       rdmsrl(MSR_HWP_CAPABILITIES, cap);
-       hw_min = HWP_LOWEST_PERF(cap);
-       hw_max = HWP_HIGHEST_PERF(cap);
-       range = hw_max - hw_min;
-
        get_online_cpus();
 
        for_each_online_cpu(cpu) {
+               rdmsrl_on_cpu(cpu, MSR_HWP_CAPABILITIES, &cap);
+               hw_min = HWP_LOWEST_PERF(cap);
+               hw_max = HWP_HIGHEST_PERF(cap);
+               range = hw_max - hw_min;
+
                rdmsrl_on_cpu(cpu, MSR_HWP_REQUEST, &value);
                adj_range = limits->min_perf_pct * range / 100;
                min = hw_min + adj_range;