From: Sumit Gupta <sumitg@nvidia.com>
To: <rafael@kernel.org>, <viresh.kumar@linaro.org>,
<pierre.gondois@arm.com>, <zhenglifeng1@huawei.com>,
<ionela.voinescu@arm.com>, <lenb@kernel.org>,
<robert.moore@intel.com>, <corbet@lwn.net>,
<rdunlap@infradead.org>, <ray.huang@amd.com>,
<gautham.shenoy@amd.com>, <mario.limonciello@amd.com>,
<perry.yuan@amd.com>, <zhanjie9@hisilicon.com>,
<linux-pm@vger.kernel.org>, <linux-acpi@vger.kernel.org>,
<linux-doc@vger.kernel.org>, <acpica-devel@lists.linux.dev>,
<linux-kernel@vger.kernel.org>
Cc: <linux-tegra@vger.kernel.org>, <treding@nvidia.com>,
<jonathanh@nvidia.com>, <vsethi@nvidia.com>,
<ksitaraman@nvidia.com>, <sanjayc@nvidia.com>,
<nhartman@nvidia.com>, <bbasu@nvidia.com>, <sumitg@nvidia.com>
Subject: [PATCH v7 2/7] ACPI: CPPC: Warn on missing mandatory DESIRED_PERF register
Date: Thu, 29 Jan 2026 16:18:12 +0530 [thread overview]
Message-ID: <20260129104817.3752340-3-sumitg@nvidia.com> (raw)
In-Reply-To: <20260129104817.3752340-1-sumitg@nvidia.com>
Add a warning during CPPC processor probe if the Desired Performance
register is not supported when it should be.
As per 8.4.6.1.2.3 section of ACPI 6.6 specification,
"The Desired Performance Register is optional only when OSPM indicates
support for CPPC2 in the platform-wide _OSC capabilities and the
Autonomous Selection Enable field is encoded as an Integer with a
value of 1."
In other words:
- In CPPC v1, DESIRED_PERF is mandatory
- In CPPC v2, it becomes optional only when AUTO_SEL_ENABLE is supported
This helps detect firmware configuration issues early during boot.
Link: https://lore.kernel.org/lkml/9fa21599-004a-4af8-acc2-190fd0404e35@nvidia.com/
Suggested-by: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
---
drivers/acpi/cppc_acpi.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
index de35aeb07833..0eb1a6d54e88 100644
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -854,6 +854,16 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr)
}
per_cpu(cpu_pcc_subspace_idx, pr->id) = pcc_subspace_id;
+ /*
+ * In CPPC v1, DESIRED_PERF is mandatory. In CPPC v2, it is optional
+ * only when AUTO_SEL_ENABLE is supported.
+ */
+ if (!CPC_SUPPORTED(&cpc_ptr->cpc_regs[DESIRED_PERF]) &&
+ (!osc_sb_cppc2_support_acked ||
+ !CPC_SUPPORTED(&cpc_ptr->cpc_regs[AUTO_SEL_ENABLE])))
+ pr_warn("Desired perf. register is mandatory if CPPC v2 is not supported "
+ "or autonomous selection is disabled\n");
+
/*
* Initialize the remaining cpc_regs as unsupported.
* Example: In case FW exposes CPPC v2, the below loop will initialize
--
2.34.1
next prev parent reply other threads:[~2026-01-29 10:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-29 10:48 [PATCH v7 0/7] Enhanced autonomous selection and improvements Sumit Gupta
2026-01-29 10:48 ` [PATCH v7 1/7] ACPI: CPPC: Add cppc_get_perf() API to read performance controls Sumit Gupta
2026-01-29 10:48 ` Sumit Gupta [this message]
2026-01-29 10:48 ` [PATCH v7 3/7] ACPI: CPPC: Extend cppc_set_epp_perf() for FFH/SystemMemory Sumit Gupta
2026-01-29 10:48 ` [PATCH v7 4/7] ACPI: CPPC: add APIs and sysfs interface for min/max_perf Sumit Gupta
2026-01-31 4:06 ` zhenglifeng (A)
2026-01-31 13:58 ` Sumit Gupta
2026-02-03 1:36 ` Russell Haley
2026-02-03 9:41 ` Sumit Gupta
2026-02-03 12:45 ` Rafael J. Wysocki
2026-02-03 12:54 ` Rafael J. Wysocki
2026-02-03 14:31 ` Sumit Gupta
2026-02-03 20:24 ` Rafael J. Wysocki
2026-02-03 20:28 ` Mario Limonciello
2026-02-04 9:51 ` Sumit Gupta
2026-02-04 13:02 ` Rafael J. Wysocki
2026-02-05 19:21 ` Sumit Gupta
2026-02-05 19:27 ` Rafael J. Wysocki
2026-02-03 12:43 ` Rafael J. Wysocki
2026-02-03 12:50 ` Rafael J. Wysocki
2026-02-05 13:10 ` Artem Bityutskiy
2026-01-29 10:48 ` [PATCH v7 5/7] ACPI: CPPC: add APIs and sysfs interface for perf_limited Sumit Gupta
2026-01-29 10:48 ` [PATCH v7 6/7] cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited Sumit Gupta
2026-01-29 10:48 ` [PATCH v7 7/7] cpufreq: CPPC: Update cached perf_ctrls on sysfs write Sumit Gupta
2026-01-30 8:23 ` [PATCH v7 0/7] Enhanced autonomous selection and improvements Pierre Gondois
2026-01-31 2:58 ` zhenglifeng (A)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260129104817.3752340-3-sumitg@nvidia.com \
--to=sumitg@nvidia.com \
--cc=acpica-devel@lists.linux.dev \
--cc=bbasu@nvidia.com \
--cc=corbet@lwn.net \
--cc=gautham.shenoy@amd.com \
--cc=ionela.voinescu@arm.com \
--cc=jonathanh@nvidia.com \
--cc=ksitaraman@nvidia.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=nhartman@nvidia.com \
--cc=perry.yuan@amd.com \
--cc=pierre.gondois@arm.com \
--cc=rafael@kernel.org \
--cc=ray.huang@amd.com \
--cc=rdunlap@infradead.org \
--cc=robert.moore@intel.com \
--cc=sanjayc@nvidia.com \
--cc=treding@nvidia.com \
--cc=viresh.kumar@linaro.org \
--cc=vsethi@nvidia.com \
--cc=zhanjie9@hisilicon.com \
--cc=zhenglifeng1@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox