From: Xi Pardee <xi.pardee@linux.intel.com>
To: xi.pardee@linux.intel.com, irenic.rajneesh@gmail.com,
david.e.box@linux.intel.com, ilpo.jarvinen@linux.intel.com,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org
Subject: [PATCH v2 3/4] platform/x86/intel/pmc: Enable substate residencies for multiple PMCs
Date: Thu, 8 Jan 2026 14:31:41 -0800 [thread overview]
Message-ID: <20260108223144.504267-4-xi.pardee@linux.intel.com> (raw)
In-Reply-To: <20260108223144.504267-1-xi.pardee@linux.intel.com>
Enable substate residencies support for multiple PMCs. Previously
substate residencies were shown only for the primary PMC. This
change enables substate residencies for all available PMCs.
The output of substate_residencies with this patch will be similar
to this:
pmc0 Substate Residency
S0i2.0 0
S0i2.1 0
S0i2.2 0
pmc1 Substate Residency
S0i2.0 0
S0i2.1 0
S0i2.2 0
pmc2 Substate Residency
S0i2.0 0
Signed-off-by: Xi Pardee <xi.pardee@linux.intel.com>
---
drivers/platform/x86/intel/pmc/core.c | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/drivers/platform/x86/intel/pmc/core.c b/drivers/platform/x86/intel/pmc/core.c
index c76934ad7bf1d..e16f9630b908c 100644
--- a/drivers/platform/x86/intel/pmc/core.c
+++ b/drivers/platform/x86/intel/pmc/core.c
@@ -776,16 +776,26 @@ static inline u64 adjust_lpm_residency(struct pmc *pmc, u32 offset,
static int pmc_core_substate_res_show(struct seq_file *s, void *unused)
{
struct pmc_dev *pmcdev = s->private;
- struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
- const int lpm_adj_x2 = pmc->map->lpm_res_counter_step_x2;
- u32 offset = pmc->map->lpm_residency_offset;
- u8 mode;
+ unsigned int pmc_idx;
+
+ for (pmc_idx = 0; pmc_idx < ARRAY_SIZE(pmcdev->pmcs); ++pmc_idx) {
+ int lpm_adj_x2;
+ struct pmc *pmc;
+ u32 offset;
+ u8 mode;
- seq_printf(s, "%-10s %-15s\n", "Substate", "Residency");
+ pmc = pmcdev->pmcs[pmc_idx];
+ if (!pmc)
+ continue;
- pmc_for_each_mode(mode, pmc) {
- seq_printf(s, "%-10s %-15llu\n", pmc_lpm_modes[mode],
- adjust_lpm_residency(pmc, offset + (4 * mode), lpm_adj_x2));
+ lpm_adj_x2 = pmc->map->lpm_res_counter_step_x2;
+ offset = pmc->map->lpm_residency_offset;
+
+ seq_printf(s, "pmc%u %10s %15s\n", pmc_idx, "Substate", "Residency");
+ pmc_for_each_mode(mode, pmc) {
+ seq_printf(s, "%15s %15llu\n", pmc_lpm_modes[mode],
+ adjust_lpm_residency(pmc, offset + (4 * mode), lpm_adj_x2));
+ }
}
return 0;
--
2.43.0
next prev parent reply other threads:[~2026-01-08 22:31 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-08 22:31 [PATCH v2 0/4] Enable substate residencies for multiple PMCs Xi Pardee
2026-01-08 22:31 ` [PATCH v2 1/4] platform/x86/intel/pmc: Change LPM mode fields to u8 Xi Pardee
2026-01-08 22:31 ` [PATCH v2 2/4] platform/x86/intel/pmc: Move LPM mode attributes to PMC Xi Pardee
2026-01-08 22:31 ` Xi Pardee [this message]
2026-01-08 22:31 ` [PATCH v2 4/4] platform/x86/intel/pmc: Remove double empty line Xi Pardee
2026-01-12 15:34 ` [PATCH v2 0/4] Enable substate residencies for multiple PMCs Ilpo Järvinen
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=20260108223144.504267-4-xi.pardee@linux.intel.com \
--to=xi.pardee@linux.intel.com \
--cc=david.e.box@linux.intel.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=irenic.rajneesh@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.