Add initial kernel support for CPPC v4 (ACPI 6.6, Section 8.4.6),
which extends the _CPC package from 23 to 25 entries with two
optional fields:
- OSPM Nominal Performance (8.4.6.1.2.6): register used by OSPM
to tell the platform what it considers nominal. The platform
classifies performance above this as boost and below as
throttle for power/thermal decisions.
- Resource Priority (8.4.6.1.2.7): Package of Resource Priority
Register Descriptor sub-packages. Full parsing is not yet
implemented; such entries are marked as unsupported.
Patch 1: Add v4 _CPC parsing - validate the 25-entry layout,
restrict the Resource Priority package fallback to that slot
only, and mark the two new registers optional.
Patch 2: Add per-policy sysfs attribute ospm_nominal_freq (kHz)
under cpufreq. Writes are converted to perf and applied to every
CPU in policy->cpus.
---
v2[2] -> v3:
- Patch 1:
- Accept ACPI_TYPE_PACKAGE only at RESOURCE_PRIORITY; abort otherwise.
- Added Reviewed-by from Pierre Gondois.
- Patch 2:
- Sysfs moved from per-CPU acpi_cppc to per-policy cpufreq.
- Read ospm_nominal_freq sysfs input in kHz and convert to perf.
- Cached ospm_nominal_perf moved from cpc_desc to cppc_cpudata.
- Validate input against [Lowest Performance, Nominal Performance]
in cppc_set_ospm_nominal_perf().
- Dropped unconditional init in cppc_cpufreq_cpu_init().
- Remove to skip write if cache matches in cppc_set_ospm_nominal_perf.
- Early -ENODEV return when no CPC descriptor.
- Added ABI documentation at
Documentation/ABI/testing/sysfs-devices-system-cpu.
v1[1] -> v2:
- Patch 1: Added Reviewed-by from Mario Limonciello.
- Patch 2:
- Make ospm_nominal_perf sysfs read-write; cache last write in
cpc_desc and skip redundant register writes.
- Validate input in cppc_set_ospm_nominal_perf.
Sumit Gupta (2):
ACPI: CPPC: Add support for CPPC v4
ACPI: CPPC: Add ospm_nominal_perf support
.../ABI/testing/sysfs-devices-system-cpu | 17 ++++++
drivers/acpi/cppc_acpi.c | 58 +++++++++++++++++--
drivers/cpufreq/cppc_cpufreq.c | 40 +++++++++++++
include/acpi/cppc_acpi.h | 15 ++++-
4 files changed, 122 insertions(+), 8 deletions(-)
[1] https://lore.kernel.org/lkml/20260427051823.280419-1-sumitg@nvidia.com/
[2] https://lore.kernel.org/lkml/20260430142430.755437-1-sumitg@nvidia.com/
--
2.34.1