From: Perry Yuan Date: Sun, 14 Aug 2022 16:35:46 +0000 (+0800) Subject: cpufreq: amd_pstate: map desired perf into pstate scope for powersave governor X-Git-Tag: v6.6.17~6539^2~1^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0e9a86386bca646d3b0fc50e5e15eedb1eb620b3;p=platform%2Fkernel%2Flinux-rpi.git cpufreq: amd_pstate: map desired perf into pstate scope for powersave governor The patch will fix the invalid desired perf value for powersave governor. This issue is found when testing on one AMD EPYC system, the actual des_perf is smaller than the min_perf value, that is invalid value. because the min_perf is the lowest_perf system can support in idle state. Reviewed-by: Huang Rui Signed-off-by: Perry Yuan Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c index a47a1a2..fd563a0 100644 --- a/drivers/cpufreq/amd-pstate.c +++ b/drivers/cpufreq/amd-pstate.c @@ -269,6 +269,7 @@ static void amd_pstate_update(struct amd_cpudata *cpudata, u32 min_perf, u64 prev = READ_ONCE(cpudata->cppc_req_cached); u64 value = prev; + des_perf = clamp_t(unsigned long, des_perf, min_perf, max_perf); value &= ~AMD_CPPC_MIN_PERF(~0L); value |= AMD_CPPC_MIN_PERF(min_perf); @@ -357,8 +358,6 @@ static void amd_pstate_adjust_perf(unsigned int cpu, if (max_perf < min_perf) max_perf = min_perf; - des_perf = clamp_t(unsigned long, des_perf, min_perf, max_perf); - amd_pstate_update(cpudata, min_perf, des_perf, max_perf, true); }