linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/8] Create Intel PMC SSRAM Telemetry driver
@ 2025-04-09 19:10 Xi Pardee
  2025-04-09 19:10 ` [PATCH v3 1/8] platform/x86:intel/pmc: Move PMC Core related functions Xi Pardee
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Xi Pardee @ 2025-04-09 19:10 UTC (permalink / raw)
  To: xi.pardee, irenic.rajneesh, david.e.box, hdegoede, ilpo.jarvinen,
	platform-driver-x86, linux-kernel, linux-pm

This patch series removes the SSRAM support from Intel PMC Core driver
and creates a separate PCI driver for SSRAM device. The new Intel PMC
SSRAM driver provides the following functionalities:
 
1. Search and store the PMC information in a structure, including PWRMBASE
address and devid for each available PMC. Then Intel PMC Core driver
achieves the PMC information using the API provided by the new driver.
 
2. Search and register Intel Platform Monitoring Techology telemetry
regions so they would by available for read through sysfs and Intel PMT
API. Intel PMC Core driver can achieve Low Power Mode requirement
information from a telemetry region registered by the new driver.

The above functionalities was previously handled by Intel PMC Core
driver. Intel PMC Core driver returns -EPROBE_DEFER when trying to read
data from a telem region that is not available yet. This setup may
result in an infinite loop of .probe() calls as Intel PMC Core driver
creates child devices. Creating a separate PCI driver avoids the infinite
loop possibility.

v3->v2:
- Add memory barriers to the new driver to ensure write/read order of
  device_probed variable.
- Minor grammar changes: add needed white space and end of life new line.
- Add patch to move error handling to init function.
- Remove patch to enable SSRAM support of LNL platforms. This patch will be
  included in a separate series. 

v2->v1:
- Rearrange and restructure patches completely based on feedback from v1
- Here are the patches:

Preparation for the new SSRAM Telemetry driver:
  platform/x86:intel/pmc: Move PMC Core related functions
  platform/x86:intel/pmc: Rename core_ssram to ssram_telemetry
  platform/x86:intel/pmc: Move PMC devid to core.h

Minor bug fix:
  platform/x86:intel/pmc: Convert index variables to be unsigned
  platform/x86:intel/pmc: Remove unneeded h file inclusion
  platform/x86:intel/pmc: Remove unneeded io operations

Create new driver and convert PMC Core to use the API:
  platform/x86:intel/pmc: Create Intel PMC SSRAM Telemetry driver

Enhancement:
  platform/x86:intel/pmc: Move error handling to init function

Xi Pardee (8):
  platform/x86:intel/pmc: Move PMC Core related functions
  platform/x86:intel/pmc: Rename core_ssram to ssram_telemetry
  platform/x86:intel/pmc: Move PMC devid to core.h
  platform/x86:intel/pmc: Convert index variables to be unsigned
  platform/x86:intel/pmc: Remove unneeded header file inclusion
  platform/x86:intel/pmc: Remove unneeded io operations
  platform/x86:intel/pmc: Create Intel PMC SSRAM Telemetry driver
  platform/x86:intel/pmc: Move error handling to init function

 drivers/platform/x86/intel/pmc/Kconfig        |  14 +
 drivers/platform/x86/intel/pmc/Makefile       |   8 +-
 drivers/platform/x86/intel/pmc/arl.c          |  13 +-
 drivers/platform/x86/intel/pmc/core.c         | 238 ++++++++++++-
 drivers/platform/x86/intel/pmc/core.h         |  22 +-
 drivers/platform/x86/intel/pmc/core_ssram.c   | 332 ------------------
 drivers/platform/x86/intel/pmc/mtl.c          |  10 +-
 .../platform/x86/intel/pmc/ssram_telemetry.c  | 195 ++++++++++
 .../platform/x86/intel/pmc/ssram_telemetry.h  |  35 ++
 9 files changed, 501 insertions(+), 366 deletions(-)
 delete mode 100644 drivers/platform/x86/intel/pmc/core_ssram.c
 create mode 100644 drivers/platform/x86/intel/pmc/ssram_telemetry.c
 create mode 100644 drivers/platform/x86/intel/pmc/ssram_telemetry.h

-- 
2.43.0


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

end of thread, other threads:[~2025-04-15 18:34 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-09 19:10 [PATCH v3 0/8] Create Intel PMC SSRAM Telemetry driver Xi Pardee
2025-04-09 19:10 ` [PATCH v3 1/8] platform/x86:intel/pmc: Move PMC Core related functions Xi Pardee
2025-04-10 12:23   ` Ilpo Järvinen
2025-04-09 19:10 ` [PATCH v3 2/8] platform/x86:intel/pmc: Rename core_ssram to ssram_telemetry Xi Pardee
2025-04-09 19:10 ` [PATCH v3 3/8] platform/x86:intel/pmc: Move PMC devid to core.h Xi Pardee
2025-04-09 19:10 ` [PATCH v3 4/8] platform/x86:intel/pmc: Convert index variables to be unsigned Xi Pardee
2025-04-09 19:10 ` [PATCH v3 5/8] platform/x86:intel/pmc: Remove unneeded header file inclusion Xi Pardee
2025-04-09 19:10 ` [PATCH v3 6/8] platform/x86:intel/pmc: Remove unneeded io operations Xi Pardee
2025-04-09 19:10 ` [PATCH v3 7/8] platform/x86:intel/pmc: Create Intel PMC SSRAM Telemetry driver Xi Pardee
2025-04-11 13:00   ` Ilpo Järvinen
2025-04-15 18:34     ` Xi Pardee
2025-04-09 19:10 ` [PATCH v3 8/8] platform/x86:intel/pmc: Move error handling to init function Xi Pardee

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).