cpufreq: intel_pstate: Broxton support
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Thu, 9 Jun 2016 22:34:41 +0000 (15:34 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 13 Jun 2016 21:49:39 +0000 (23:49 +0200)
Add Broxton CPU model number.

Broxton requires core_params to get performance limits via MSRs, but
it is an Atom platform, which requires more power optimized algorithm.

So the P state selection will use similar algorithm as other Atom
platforms.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/intel_pstate.c

index e1b7a5e288f992cae1e34e7b016351027a7313d6..8a0e40591f1f8d0adf4dbe54d609d959b2146748 100644 (file)
@@ -1110,6 +1110,26 @@ static struct cpu_defaults knl_params = {
        },
 };
 
+static struct cpu_defaults bxt_params = {
+       .pid_policy = {
+               .sample_rate_ms = 10,
+               .deadband = 0,
+               .setpoint = 60,
+               .p_gain_pct = 14,
+               .d_gain_pct = 0,
+               .i_gain_pct = 4,
+       },
+       .funcs = {
+               .get_max = core_get_max_pstate,
+               .get_max_physical = core_get_max_pstate_physical,
+               .get_min = core_get_min_pstate,
+               .get_turbo = core_get_turbo_pstate,
+               .get_scaling = core_get_scaling,
+               .get_val = core_get_val,
+               .get_target_pstate = get_target_pstate_use_cpu_load,
+       },
+};
+
 static void intel_pstate_get_min_max(struct cpudata *cpu, int *min, int *max)
 {
        int max_perf = cpu->pstate.turbo_pstate;
@@ -1370,6 +1390,7 @@ static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
        ICPU(INTEL_FAM6_SKYLAKE_DESKTOP,        core_params),
        ICPU(INTEL_FAM6_BROADWELL_XEON_D,       core_params),
        ICPU(INTEL_FAM6_XEON_PHI_KNL,           knl_params),
+       ICPU(INTEL_FAM6_ATOM_GOLDMONT,          bxt_params),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids);