This patch series improves the CPPC cpufreq driver with new ACPI APIs
and enhancements for Autonomous Selection (auto_select).
CPPC auto_select enables hardware-driven CPU performance scaling using
Energy Performance Preference (EPP) hints. Currently, there's limited
runtime control and visibility into CPPC performance registers.
The series adds cppc_get_perf() API to read performance controls, updates
MIN_PERF/MAX_PERF in target callbacks using existing scaling_min/max_freq
interface similar to intel_cpufreq HWP handling, and exposes perf_limited
register via sysfs to detect throttling events.
The patches are grouped as below:
- Patch 1: Add cppc_get_perf() API (independent).
- Patch 2: Warn on missing mandatory DESIRED_PERF (independent).
- Patch 3: Extend cppc_set_epp_perf for FFH/SystemMemory (independent).
- Patch 4: Update cached perf_ctrls on sysfs write (independent).
- Patch 5: Update MIN_PERF/MAX_PERF in target callbacks (depends on 4).
- Patch 6-7: APIs, sysfs and doc for perf_limited (independent).
---
v7[7] -> v8:
- patch 4 (v7): Dropped min/max_perf sysfs patch.
- patch 5 (v8): New patch to update MIN/MAX_PERF in target callbacks
using scaling_min/max_freq interface similar to intel_cpufreq.
- patch 1-4, 6-7 (v8): Added Reviewed-by from Pierre and Lifeng on v7.
Sumit Gupta (7):
ACPI: CPPC: Add cppc_get_perf() API to read performance controls
ACPI: CPPC: Warn on missing mandatory DESIRED_PERF register
ACPI: CPPC: Extend cppc_set_epp_perf() for FFH/SystemMemory
cpufreq: CPPC: Update cached perf_ctrls on sysfs write
cpufreq: cppc: Update MIN_PERF/MAX_PERF in target callbacks
ACPI: CPPC: add APIs and sysfs interface for perf_limited
cpufreq: CPPC: Add sysfs documentation for perf_limited
.../ABI/testing/sysfs-devices-system-cpu | 18 ++
drivers/acpi/cppc_acpi.c | 170 +++++++++++++++++-
drivers/cpufreq/cppc_cpufreq.c | 83 ++++++++-
include/acpi/cppc_acpi.h | 20 +++
4 files changed, 285 insertions(+), 6 deletions(-)
[1] https://lore.kernel.org/lkml/20250211103737.447704-1-sumitg@nvidia.com/
[2] https://lore.kernel.org/lkml/20250823200121.1320197-1-sumitg@nvidia.com/
[3] https://lore.kernel.org/lkml/20251001150104.1275188-1-sumitg@nvidia.com/
[4] https://lore.kernel.org/lkml/20251105113844.4086250-1-sumitg@nvidia.com/
[5] https://lore.kernel.org/lkml/20251223121307.711773-1-sumitg@nvidia.com/
[6] https://lore.kernel.org/lkml/20260120145623.2959636-1-sumitg@nvidia.com/
[7] https://lore.kernel.org/lkml/20260129104817.3752340-1-sumitg@nvidia.com/
--
2.34.1