Skip to content

ACPI: CPPC: Add CPPC v4 support (ACPI 6.6)

Sumit Gupta acpica-devel linux-acpi linux-pm lkml 4 versions – Applied

Status from this message: Applied as 7.2 material, thanks!

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest2 patches 9 repliesApplied
  2. v32 patches 9 repliesSuperseded
  3. v22 patches 8 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v12 patches7 repliesSuperseded

Patches in v4 Applied

#Subject and filesSizeRepliesApplied
1/2ACPI: CPPC: Add support for CPPC v4drivers/acpi/cppc_acpi.c include/acpi/cppc_acpi.h+23 -83 replies
2/2ACPI: CPPC: Add ospm_nominal_perf supportDocumentation/ABI/testing/sysfs-devices-system-cpu drivers/acpi/cppc_acpi.c drivers/cpufreq/cppc_cpufreq.c +1 more+124 -06 replies

Reviews trailers per patch

1 of 2 patches has a Reviewed-by or Acked-by.

PatchMario Limonciello (AMD)Pierre Gondois
1/2R-b R-b
2/2

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCH v4 0/2] ACPI: CPPC: Add CPPC v4 support (ACPI 6.6)

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.

---
v3[3] -> v4:
- Patch 2:
- Add a bool cpu_data->ospm_nominal_perf_set to distinguish an unwritten cache from a valid perf=0 write.
- Switch freq_khz to unsigned int and use kstrtouint().
- Add rollback in store_ospm_nominal_freq() to restore the previous cached value on a partial multi-CPU write failure.

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                | 60 +++++++++++++++++++
 include/acpi/cppc_acpi.h                      | 20 ++++++-
 4 files changed, 147 insertions(+), 8 deletions(-)

[1] https://lore.kernel.org/lkml/[email protected]/
[2] https://lore.kernel.org/lkml/[email protected]/
[3] https://lore.kernel.org/lkml/[email protected]/

Signature · 1 line
2.34.1