[PATCH v5 0/3] cpufreq/amd-pstate: Fix EPP and auto_sel initialization
From: Marco Scardovi
Date: Mon Jun 08 2026 - 03:43:06 EST
Hi Mario, Prateek,
I don't mind splitting in more patches as far as it works and make things
easier for you on backporting and verification.
Changes in v5:
- Split the unified patch into a 3-patch series:
- Patch 1: Change EPP helper return types to signed int and add error handling
in amd_pstate_epp_cpu_init().
- Patch 2: Remove the active-mode early return check in shmem_init_perf() to
ensure auto_sel is properly toggled on shared memory systems.
- Patch 3: Cache the initial firmware programmed EPP value in cppc_req_cached.
Changes in v4:
- Refactor EPP getter helper functions (msr_get_epp, shmem_get_epp, and
amd_pstate_get_epp) to return int, conforming to standard kernel practice
for value-or-negative-errno helpers.
- Clean up commit message description to link error propagation directly to
EPP caching.
- Execute the remaining shared-memory initialization path even when booting
in active mode, rather than bypassing it through an early return.
Changes in v3:
- Patch 1: Cache the firmware-programmed default EPP value at CPU EPP
initialization (resolving the boot-time false cache hit) and explicitly
toggle the AUTO_SEL_ENABLE register to 1 on shared memory systems,
rather than utilizing a state-tracking flag as proposed in v2.
- Patch 2: Dropped as CPPC systems universally support EPP.
Changes in v2:
- Patch 1: Rename `epp_initialized` to `epp_hw_programmed` and add a comment
documenting the EPP cache guard optimization behavior.
- Patch 2: Add comments explaining the uniform CPU capability check on x86,
handle EPP capability check errors robustly (only treat -EOPNOTSUPP as
unsupported, warn and assume supported for other errors to avoid false
negatives), and reject runtime active mode transitions at sysfs store time
(preventing the driver from being left in an unregistered state).
Changes in v1:
- Fix the boot-time CPPC EPP/auto_sel initialization regression in
shmem_set_epp() using a state tracking flag while preserving runtime
cache optimization.
- Add an EPP capability check helper during initialization.
- Fall back to passive mode at boot if EPP is not supported, and reject
transitions to active mode at runtime if EPP is not supported.
Marco Scardovi (3):
cpufreq/amd-pstate: Fix EPP return type and handle errors during
initialization
cpufreq/amd-pstate: Toggle auto_sel in active mode on shared memory
systems
cpufreq/amd-pstate: Cache the firmware programmed EPP value
drivers/cpufreq/amd-pstate.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
--
2.54.0