Linux Power Management development
 help / color / mirror / Atom feed
* [PATCH v1] ACPI: CPPC: Drop two compliance checks involving nominal performance
@ 2026-11-12 17:35 Rafael J. Wysocki
  2026-11-12 17:42 ` Rafael J. Wysocki (Intel)
  0 siblings, 1 reply; 5+ messages in thread
From: Rafael J. Wysocki @ 2026-11-12 17:35 UTC (permalink / raw)
  To: Linux ACPI; +Cc: Christian Loehle, Linux PM, Srinivas Pandruvada

From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>

On a number of Intel platforms in the field, the nominal performance
value in ACPI _CPC (which is an integer) is larger than the guaranteed
performance value and it may even be larger than the highest performance
value (that come from register reads).

The new specification compliance checks involving those values added
by commit 32299b29a887 ("ACPI: CPPC: Validate _CPC entry and control
semantics") cause the CPPC library to refuse to work for some CPUs
on the affected systems which in turn causes the intel_pstate driver
to overestimate the maximum performance levels for those CPUs.  One
of the affected systems is Dell Pro 5 14 P514260.

In this particular case, the fact that the specification is not
exactly followed has no implications and the checks enforcing
compliance are not useful, so drop them from the CPPC library.

If really necessary, they will need to be done elsewhere.

Fixes: 32299b29a887 ("ACPI: CPPC: Validate _CPC entry and control semantics")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/acpi/cppc_acpi.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -2940,9 +2940,8 @@ int cppc_get_perf_caps(int cpunum, struc
 	if (!high || !low || !nom || !ref || !min_nonlinear ||
 	    high > U32_MAX || low > U32_MAX || guaranteed > U32_MAX ||
 	    nom > U32_MAX || ref > U32_MAX || min_nonlinear > U32_MAX ||
-	    high < nom || nom < min_nonlinear || min_nonlinear < low ||
-	    (CPC_SUPPORTED(guaranteed_reg) &&
-	     (guaranteed < low || guaranteed > nom))) {
+	    nom < min_nonlinear || min_nonlinear < low ||
+	    (CPC_SUPPORTED(guaranteed_reg) && guaranteed < low)) {
 		ret = -EFAULT;
 		goto out_err;
 	}




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-11-12 21:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-12 17:35 [PATCH v1] ACPI: CPPC: Drop two compliance checks involving nominal performance Rafael J. Wysocki
2026-11-12 17:42 ` Rafael J. Wysocki (Intel)
2026-11-12 20:55   ` Christian Loehle
2026-11-12 21:02     ` Rafael J. Wysocki (Intel)
2026-11-12 21:06       ` Christian Loehle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox