| From d3f8093506d6f854eafb08e48eb5433b69d49ade Mon Sep 17 00:00:00 2001 |
| From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> |
| Date: Thu, 31 Oct 2019 12:26:20 -0700 |
| Subject: [PATCH] cpufreq: intel_pstate: Fix invalid EPB setting |
| |
| commit c31432fa7f825de0e19838f1ac7746381c509ec4 upstream. |
| |
| The max value of EPB can only be 0x0F. Attempting to set more than that |
| triggers an "unchecked MSR access error" warning which happens in |
| intel_pstate_hwp_force_min_perf() called via cpufreq stop_cpu(). |
| |
| However, it is not even necessary to touch the EPB from intel_pstate, |
| because it is restored on every CPU online by the intel_epb.c code, |
| so let that code do the right thing and drop the redundant (and |
| incorrect) EPB update from intel_pstate. |
| |
| Fixes: af3b7379e2d70 ("cpufreq: intel_pstate: Force HWP min perf before offline") |
| Reported-by: Qian Cai <cai@lca.pw> |
| Cc: 5.2+ <stable@vger.kernel.org> # 5.2+ |
| Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> |
| [ rjw: Changelog ] |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c |
| index f2ff5de988c1..6dc359a00956 100644 |
| --- a/drivers/cpufreq/intel_pstate.c |
| +++ b/drivers/cpufreq/intel_pstate.c |
| @@ -846,11 +846,9 @@ static void intel_pstate_hwp_force_min_perf(int cpu) |
| value |= HWP_MAX_PERF(min_perf); |
| value |= HWP_MIN_PERF(min_perf); |
| |
| - /* Set EPP/EPB to min */ |
| + /* Set EPP to min */ |
| if (boot_cpu_has(X86_FEATURE_HWP_EPP)) |
| value |= HWP_ENERGY_PERF_PREFERENCE(HWP_EPP_POWERSAVE); |
| - else |
| - intel_pstate_set_epb(cpu, HWP_EPP_BALANCE_POWERSAVE); |
| |
| wrmsrl_on_cpu(cpu, MSR_HWP_REQUEST, value); |
| } |
| -- |
| 2.7.4 |
| |