Merge branch 'x86/urgent' into x86/cpu, to pick up dependent fix
authorIngo Molnar <mingo@kernel.org>
Fri, 1 Jul 2016 07:35:49 +0000 (09:35 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 1 Jul 2016 07:35:49 +0000 (09:35 +0200)
Signed-off-by: Ingo Molnar <mingo@kernel.org>
1  2 
drivers/cpufreq/intel_pstate.c

@@@ -35,7 -35,6 +35,7 @@@
  #include <asm/msr.h>
  #include <asm/cpu_device_id.h>
  #include <asm/cpufeature.h>
 +#include <asm/intel-family.h>
  
  #define ATOM_RATIOS           0x66a
  #define ATOM_VIDS             0x66b
@@@ -1353,29 -1352,29 +1353,29 @@@ static void intel_pstate_update_util(st
                        (unsigned long)&policy }
  
  static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
 -      ICPU(0x2a, core_params),
 -      ICPU(0x2d, core_params),
 -      ICPU(0x37, silvermont_params),
 -      ICPU(0x3a, core_params),
 -      ICPU(0x3c, core_params),
 -      ICPU(0x3d, core_params),
 -      ICPU(0x3e, core_params),
 -      ICPU(0x3f, core_params),
 -      ICPU(0x45, core_params),
 -      ICPU(0x46, core_params),
 -      ICPU(0x47, core_params),
 -      ICPU(0x4c, airmont_params),
 -      ICPU(0x4e, core_params),
 -      ICPU(0x4f, core_params),
 -      ICPU(0x5e, core_params),
 -      ICPU(0x56, core_params),
 -      ICPU(0x57, knl_params),
 +      ICPU(INTEL_FAM6_SANDYBRIDGE,            core_params),
 +      ICPU(INTEL_FAM6_SANDYBRIDGE_X,          core_params),
 +      ICPU(INTEL_FAM6_ATOM_SILVERMONT1,       silvermont_params),
 +      ICPU(INTEL_FAM6_IVYBRIDGE,              core_params),
 +      ICPU(INTEL_FAM6_HASWELL_CORE,           core_params),
 +      ICPU(INTEL_FAM6_BROADWELL_CORE,         core_params),
 +      ICPU(INTEL_FAM6_IVYBRIDGE_X,            core_params),
 +      ICPU(INTEL_FAM6_HASWELL_X,              core_params),
 +      ICPU(INTEL_FAM6_HASWELL_ULT,            core_params),
 +      ICPU(INTEL_FAM6_HASWELL_GT3E,           core_params),
 +      ICPU(INTEL_FAM6_BROADWELL_GT3E,         core_params),
 +      ICPU(INTEL_FAM6_ATOM_AIRMONT,           airmont_params),
 +      ICPU(INTEL_FAM6_SKYLAKE_MOBILE,         core_params),
 +      ICPU(INTEL_FAM6_BROADWELL_X,            core_params),
 +      ICPU(INTEL_FAM6_SKYLAKE_DESKTOP,        core_params),
 +      ICPU(INTEL_FAM6_BROADWELL_XEON_D,       core_params),
 +      ICPU(INTEL_FAM6_XEON_PHI_KNL,           knl_params),
        {}
  };
  MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids);
  
  static const struct x86_cpu_id intel_pstate_cpu_oob_ids[] = {
 -      ICPU(0x56, core_params),
 +      ICPU(INTEL_FAM6_BROADWELL_XEON_D, core_params),
        {}
  };
  
@@@ -1461,6 -1460,9 +1461,9 @@@ static int intel_pstate_set_policy(stru
  
        intel_pstate_clear_update_util_hook(policy->cpu);
  
+       pr_debug("set_policy cpuinfo.max %u policy->max %u\n",
+                policy->cpuinfo.max_freq, policy->max);
        cpu = all_cpu_data[0];
        if (cpu->pstate.max_pstate_physical > cpu->pstate.max_pstate &&
            policy->max < policy->cpuinfo.max_freq &&
                                   limits->max_sysfs_pct);
        limits->max_perf_pct = max(limits->min_policy_pct,
                                   limits->max_perf_pct);
-       limits->max_perf = round_up(limits->max_perf, FRAC_BITS);
  
        /* Make sure min_perf_pct <= max_perf_pct */
        limits->min_perf_pct = min(limits->max_perf_pct, limits->min_perf_pct);
  
        limits->min_perf = div_fp(limits->min_perf_pct, 100);
        limits->max_perf = div_fp(limits->max_perf_pct, 100);
+       limits->max_perf = round_up(limits->max_perf, FRAC_BITS);
  
   out:
        intel_pstate_set_update_util_hook(policy->cpu);
@@@ -1559,8 -1561,11 +1562,11 @@@ static int intel_pstate_cpu_init(struc
  
        /* cpuinfo and default policy values */
        policy->cpuinfo.min_freq = cpu->pstate.min_pstate * cpu->pstate.scaling;
-       policy->cpuinfo.max_freq =
-               cpu->pstate.turbo_pstate * cpu->pstate.scaling;
+       update_turbo_state();
+       policy->cpuinfo.max_freq = limits->turbo_disabled ?
+                       cpu->pstate.max_pstate : cpu->pstate.turbo_pstate;
+       policy->cpuinfo.max_freq *= cpu->pstate.scaling;
        intel_pstate_init_acpi_perf_limits(policy);
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
        cpumask_set_cpu(policy->cpu, policy->cpus);