Skip to content

Create Intel PMC SSRAM Telemetry driver

Xi Pardee linux-pm lkml platform-driver-x86 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest5 patches 1 replyIn review
  2. v44 patches 4 repliesSuperseded
  3. v38 patches 3 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v211 patches14 repliesSuperseded
v17 patches2 repliesSuperseded

v5->v4 from the cover letter

- Remove unneeded changes in pmc_core_ssram_get_lpm_reqs()
- Replace mutex_init() with devm_mutex_init()

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5platform/x86:intel/vsec: Change return type of intel_vsec_registerdrivers/platform/x86/intel/vsec.c include/linux/intel_vsec.h+9 -50 replies
2/5platform/x86:intel/pmc: Create Intel PMC SSRAM Telemetry driverdrivers/platform/x86/intel/pmc/Kconfig drivers/platform/x86/intel/pmc/Makefile drivers/platform/x86/intel/pmc/core.c +3 more+185 -780 replies
3/5platform/x86:intel/pmc: Use devm for mutex_initdrivers/platform/x86/intel/pmc/core.c+3 -20 replies
4/5platform/x86:intel/pmc: Move error handling to init functiondrivers/platform/x86/intel/pmc/core.c+19 -30 replies
5/5platform/x86:intel/pmc: Improve pmc_core_get_lpm_req()drivers/platform/x86/intel/pmc/core.c+45 -460 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v5 yet.

Read the v5 thread

Cover letter [PATCH v5 0/5] Create Intel PMC SSRAM Telemetry driver

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.

v5->v4:
- Remove unneeded changes in pmc_core_ssram_get_lpm_reqs()
- Replace mutex_init() with devm_mutex_init()

V4->v3:
- Remove the first six patches that are accepted.
- Add a patch to change the return type of intel_vsec_registeri() from void to int.
- Change the return type of pmc_ssram_telemetry_get_pmc() so the probe function of Intel PMC SSRAM Telemetry driver will fail if intel_vsec_register() fails. The previous implementation hides the failure.
- Use __free(pci_dev_put) in core.c.
- Move pmc_ssram_telemetry_get_pmc_info() function comment to c file from h file.
- Add a patch to improve pmc_core_get_lpm_req() suggested by comment from last version.

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

Xi Pardee (5):
platform/x86:intel/vsec: Change return type of intel_vsec_register platform/x86:intel/pmc: Create Intel PMC SSRAM Telemetry driver platform/x86:intel/pmc: Use devm for mutex_init platform/x86:intel/pmc: Move error handling to init function platform/x86:intel/pmc: Improve pmc_core_get_lpm_req()

 drivers/platform/x86/intel/pmc/Kconfig        |   4 +
 drivers/platform/x86/intel/pmc/Makefile       |   8 +-
 drivers/platform/x86/intel/pmc/core.c         | 189 +++++++++++-------
 drivers/platform/x86/intel/pmc/core.h         |   7 -
 .../platform/x86/intel/pmc/ssram_telemetry.c  | 147 +++++++++-----
 .../platform/x86/intel/pmc/ssram_telemetry.h  |  24 +++
 drivers/platform/x86/intel/vsec.c             |   9 +-
 include/linux/intel_vsec.h                    |   5 +-
 8 files changed, 260 insertions(+), 133 deletions(-)
 create mode 100644 drivers/platform/x86/intel/pmc/ssram_telemetry.h
Signature · 1 line
2.43.0