aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>2016-06-09 18:34:41 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-06-13 17:49:39 -0400
commit41bad47f76481d8f55a555274062707e41e57e0e (patch)
tree5a9dcf443cf81111b8848a185f88c95f1cefeb27
parentae892d150fe6da09ce00cf469ea6f326a9435ee2 (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.c21
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
1113static 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
1113static void intel_pstate_get_min_max(struct cpudata *cpu, int *min, int *max) 1133static 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};
1375MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids); 1396MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids);