aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Brandewie <dirk.j.brandewie@intel.com>2013-10-21 12:20:33 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-10-21 19:16:39 -0400
commit7244cb62d96e735847dc9d08f870550df896898c (patch)
treef1f7f5dc8d3e62cfdb092db908eeba2aaa1229dd
parentd253d2a52676cfa3d89b8f0737a08ce7db665207 (diff)
intel_pstate: Correct calculation of min pstate value
The minimum pstate is supposed to be a percentage of the maximum P state available. Calculate min using max pstate and not the current max which may have been limited by the user Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--drivers/cpufreq/intel_pstate.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 8b8677f92700..eb3fdc755000 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -366,12 +366,13 @@ static int intel_pstate_turbo_pstate(void)
366static void intel_pstate_get_min_max(struct cpudata *cpu, int *min, int *max) 366static void intel_pstate_get_min_max(struct cpudata *cpu, int *min, int *max)
367{ 367{
368 int max_perf = cpu->pstate.turbo_pstate; 368 int max_perf = cpu->pstate.turbo_pstate;
369 int max_perf_adj;
369 int min_perf; 370 int min_perf;
370 if (limits.no_turbo) 371 if (limits.no_turbo)
371 max_perf = cpu->pstate.max_pstate; 372 max_perf = cpu->pstate.max_pstate;
372 373
373 max_perf = fp_toint(mul_fp(int_tofp(max_perf), limits.max_perf)); 374 max_perf_adj = fp_toint(mul_fp(int_tofp(max_perf), limits.max_perf));
374 *max = clamp_t(int, max_perf, 375 *max = clamp_t(int, max_perf_adj,
375 cpu->pstate.min_pstate, cpu->pstate.turbo_pstate); 376 cpu->pstate.min_pstate, cpu->pstate.turbo_pstate);
376 377
377 min_perf = fp_toint(mul_fp(int_tofp(max_perf), limits.min_perf)); 378 min_perf = fp_toint(mul_fp(int_tofp(max_perf), limits.min_perf));