diff options
author | Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> | 2016-06-09 18:34:41 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-06-13 17:49:39 -0400 |
commit | 41bad47f76481d8f55a555274062707e41e57e0e (patch) | |
tree | 5a9dcf443cf81111b8848a185f88c95f1cefeb27 | |
parent | ae892d150fe6da09ce00cf469ea6f326a9435ee2 (diff) |
cpufreq: intel_pstate: Broxton support
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>
-rw-r--r-- | drivers/cpufreq/intel_pstate.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c index e1b7a5e288f9..8a0e40591f1f 100644 --- a/drivers/cpufreq/intel_pstate.c +++ b/drivers/cpufreq/intel_pstate.c | |||
@@ -1110,6 +1110,26 @@ static struct cpu_defaults knl_params = { | |||
1110 | }, | 1110 | }, |
1111 | }; | 1111 | }; |
1112 | 1112 | ||
1113 | static struct cpu_defaults bxt_params = { | ||
1114 | .pid_policy = { | ||
1115 | .sample_rate_ms = 10, | ||
1116 | .deadband = 0, | ||
1117 | .setpoint = 60, | ||
1118 | .p_gain_pct = 14, | ||
1119 | .d_gain_pct = 0, | ||
1120 | .i_gain_pct = 4, | ||
1121 | }, | ||
1122 | .funcs = { | ||
1123 | .get_max = core_get_max_pstate, | ||
1124 | .get_max_physical = core_get_max_pstate_physical, | ||
1125 | .get_min = core_get_min_pstate, | ||
1126 | .get_turbo = core_get_turbo_pstate, | ||
1127 | .get_scaling = core_get_scaling, | ||
1128 | .get_val = core_get_val, | ||
1129 | .get_target_pstate = get_target_pstate_use_cpu_load, | ||
1130 | }, | ||
1131 | }; | ||
1132 | |||
1113 | static void intel_pstate_get_min_max(struct cpudata *cpu, int *min, int *max) | 1133 | static void intel_pstate_get_min_max(struct cpudata *cpu, int *min, int *max) |
1114 | { | 1134 | { |
1115 | int max_perf = cpu->pstate.turbo_pstate; | 1135 | int max_perf = cpu->pstate.turbo_pstate; |
@@ -1370,6 +1390,7 @@ static const struct x86_cpu_id intel_pstate_cpu_ids[] = { | |||
1370 | ICPU(INTEL_FAM6_SKYLAKE_DESKTOP, core_params), | 1390 | ICPU(INTEL_FAM6_SKYLAKE_DESKTOP, core_params), |
1371 | ICPU(INTEL_FAM6_BROADWELL_XEON_D, core_params), | 1391 | ICPU(INTEL_FAM6_BROADWELL_XEON_D, core_params), |
1372 | ICPU(INTEL_FAM6_XEON_PHI_KNL, knl_params), | 1392 | ICPU(INTEL_FAM6_XEON_PHI_KNL, knl_params), |
1393 | ICPU(INTEL_FAM6_ATOM_GOLDMONT, bxt_params), | ||
1373 | {} | 1394 | {} |
1374 | }; | 1395 | }; |
1375 | MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids); | 1396 | MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids); |