]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
cpufreq/amd-pstate: Use boost numerator for upper bound of frequencies
authorMario Limonciello <mario.limonciello@amd.com>
Mon, 9 Dec 2024 18:52:35 +0000 (12:52 -0600)
committerMario Limonciello <mario.limonciello@amd.com>
Tue, 10 Dec 2024 16:17:43 +0000 (10:17 -0600)
commit 18d9b5227121 ("cpufreq/amd-pstate: Use nominal perf for limits
when boost is disabled") introduced different semantics for min/max limits
based upon whether the user turned off boost from sysfs.

This however is not necessary when the highest perf value is the boost
numerator.

Suggested-by: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
Fixes: 18d9b5227121 ("cpufreq/amd-pstate: Use nominal perf for limits when boost is disabled")
Link: https://lore.kernel.org/r/20241209185248.16301-3-mario.limonciello@amd.com
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
drivers/cpufreq/amd-pstate.c

index ab6fe9c2150c9747ccdede895ac5de4448565455..66e5dfc711c0c5335340196be687a469853aefa4 100644 (file)
@@ -570,16 +570,13 @@ static int amd_pstate_verify(struct cpufreq_policy_data *policy_data)
 
 static int amd_pstate_update_min_max_limit(struct cpufreq_policy *policy)
 {
-       u32 max_limit_perf, min_limit_perf, lowest_perf, max_perf;
+       u32 max_limit_perf, min_limit_perf, lowest_perf, max_perf, max_freq;
        struct amd_cpudata *cpudata = policy->driver_data;
 
-       if (cpudata->boost_supported && !policy->boost_enabled)
-               max_perf = READ_ONCE(cpudata->nominal_perf);
-       else
-               max_perf = READ_ONCE(cpudata->highest_perf);
-
-       max_limit_perf = div_u64(policy->max * max_perf, policy->cpuinfo.max_freq);
-       min_limit_perf = div_u64(policy->min * max_perf, policy->cpuinfo.max_freq);
+       max_perf = READ_ONCE(cpudata->highest_perf);
+       max_freq = READ_ONCE(cpudata->max_freq);
+       max_limit_perf = div_u64(policy->max * max_perf, max_freq);
+       min_limit_perf = div_u64(policy->min * max_perf, max_freq);
 
        lowest_perf = READ_ONCE(cpudata->lowest_perf);
        if (min_limit_perf < lowest_perf)