cpufreq: intel_pstate: Drop redundant intel_pstate_get_hwp_cap() call
Subsystems (2)
PATCH 1/1 cpufreq: intel_pstate: Drop redundant intel_pstate_get_hwp_cap() call
From: Rafael J. Wysocki <[email protected]>
It is not necessary to call intel_pstate_get_hwp_cap() from intel_pstate_update_perf_limits(), because it gets called from intel_pstate_verify_cpu_policy() which is either invoked directly right before intel_pstate_update_perf_limits(), in intel_cpufreq_verify_policy() in the passive mode, or called from driver callbacks in a sequence that causes it to be followed by an immediate intel_pstate_update_perf_limits().
Namely, in the active mode intel_cpufreq_verify_policy() is called by intel_pstate_verify_policy() which is the ->verify() callback routine of intel_pstate and gets called by the cpufreq core right before intel_pstate_set_policy(), which is the driver's ->setoplicy() callback routine, where intel_pstate_update_perf_limits() is called.
--- drivers/cpufreq/intel_pstate.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-)
drivers/cpufreq/intel_pstate.c +7 -11
@@ -2486,18 +2486,14 @@ static void intel_pstate_update_perf_lim* HWP needs some special consideration, because HWP_REQUEST uses * abstract values to represent performance rather than pure ratios. */ -if (hwp_active) { -intel_pstate_get_hwp_cap (cpu); +if (hwp_active && cpu->pstate.scaling != perf_ctl_scaling) { +int scaling = cpu->pstate.scaling; +int freq; -if (cpu->pstate.scaling != perf_ctl_scaling) { -int scaling = cpu->pstate.scaling; -int freq; - - freq = max_policy_perf * perf_ctl_scaling; - max_policy_perf =DIV_ROUND_UP (freq, scaling); - freq = min_policy_perf * perf_ctl_scaling; - min_policy_perf =DIV_ROUND_UP (freq, scaling); - } + freq = max_policy_perf * perf_ctl_scaling; + max_policy_perf =DIV_ROUND_UP (freq, scaling); + freq = min_policy_perf * perf_ctl_scaling; + min_policy_perf =DIV_ROUND_UP (freq, scaling); } pr_debug("cpu:%d min_policy_perf:%d max_policy_perf:%d\n",