diff mbox series

[v3,3/7] cpufreq: amd-pstate: fix max_perf calculation for amd_get_max_freq()

Message ID 34e61ea5f1615ee0d464197ab4f521cf8b02617d.1707297581.git.perry.yuan@amd.com
State Superseded
Headers show
Series [v3,1/7] cpufreq: amd-pstate: initialize new core precision boost state | expand

Commit Message

Perry Yuan Feb. 7, 2024, 9:21 a.m. UTC
From: Perry Yuan <Perry.Yuan@amd.com>

When CPU core Precision Boost state changed, the max frequency will also
need to be updated according to the current boost state, if boost is
disabled now, the max perf will be limited to nominal perf values.
otherwise the max frequency will be showed wrongly.

Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>
---
 drivers/cpufreq/amd-pstate.c | 4 ++++
 1 file changed, 4 insertions(+)
diff mbox series

Patch

diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index 82b43bb2ab83..1f86ce920d6c 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -624,6 +624,10 @@  static int amd_get_max_freq(struct amd_cpudata *cpudata)
 	nominal_perf = READ_ONCE(cpudata->nominal_perf);
 	max_perf = READ_ONCE(cpudata->highest_perf);
 
+	/* when boost is off, the highest perf will be limited to nominal_perf */
+	if (!global.cpb_boost)
+		max_perf = nominal_perf;
+
 	boost_ratio = div_u64(max_perf << SCHED_CAPACITY_SHIFT,
 			      nominal_perf);