38 lines
1.2 KiB
Diff
38 lines
1.2 KiB
Diff
From d53216c4c9f67163c9dec656862f1135d6f4af63 Mon Sep 17 00:00:00 2001
|
|
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
Date: Wed, 26 Feb 2025 01:49:30 -0600
|
|
Subject: cpufreq/amd-pstate: Update cppc_req_cached for shared mem EPP writes
|
|
|
|
On EPP only writes update the cached variable so that the min/max
|
|
performance controls don't need to be updated again.
|
|
|
|
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
---
|
|
drivers/cpufreq/amd-pstate.c | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
--- a/drivers/cpufreq/amd-pstate.c
|
|
+++ b/drivers/cpufreq/amd-pstate.c
|
|
@@ -336,6 +336,7 @@ static int shmem_set_epp(struct cpufreq_
|
|
{
|
|
struct amd_cpudata *cpudata = policy->driver_data;
|
|
struct cppc_perf_ctrls perf_ctrls;
|
|
+ u64 value;
|
|
int ret;
|
|
|
|
if (trace_amd_pstate_epp_perf_enabled()) {
|
|
@@ -362,6 +363,11 @@ static int shmem_set_epp(struct cpufreq_
|
|
}
|
|
WRITE_ONCE(cpudata->epp_cached, epp);
|
|
|
|
+ value = READ_ONCE(cpudata->cppc_req_cached);
|
|
+ value &= ~AMD_CPPC_EPP_PERF_MASK;
|
|
+ value |= FIELD_PREP(AMD_CPPC_EPP_PERF_MASK, epp);
|
|
+ WRITE_ONCE(cpudata->cppc_req_cached, value);
|
|
+
|
|
return ret;
|
|
}
|
|
|