Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

platform/x86:intel/pmc: Enable SSRAM support for Panther Lake

Enable Panther Lake platforms to achieve PMC information from
Intel PMC SSRAM Telemetry driver and substate requirements data
from telemetry region.

Signed-off-by: Xi Pardee <xi.pardee@linux.intel.com>
Link: https://patch.msgid.link/20250910210629.11198-6-xi.pardee@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

authored by

Xi Pardee and committed by
Ilpo Järvinen
8e54e493 a22bc864

+33
+2
drivers/platform/x86/intel/pmc/core.h
··· 297 297 #define PTL_PMC_LTR_CUR_ASLT 0x1C28 298 298 #define PTL_PMC_LTR_CUR_PLT 0x1C2C 299 299 #define PTL_PCD_PMC_MMIO_REG_LEN 0x31A8 300 + #define PTL_NUM_S0IX_BLOCKER 106 301 + #define PTL_BLK_REQ_OFFSET 55 300 302 301 303 /* Wildcat Lake */ 302 304 #define WCL_PMC_LTR_RESERVED 0x1B64
+31
drivers/platform/x86/intel/pmc/ptl.c
··· 10 10 11 11 #include "core.h" 12 12 13 + /* PMC SSRAM PMT Telemetry GUIDS */ 14 + #define PCDP_LPM_REQ_GUID 0x47179370 15 + 16 + /* 17 + * Die Mapping to Product. 18 + * Product PCDDie 19 + * PTL-H PCD-H 20 + * PTL-P PCD-P 21 + * PTL-U PCD-P 22 + */ 23 + 13 24 static const struct pmc_bit_map ptl_pcdp_pfear_map[] = { 14 25 {"PMC_0", BIT(0)}, 15 26 {"FUSE_OSSE", BIT(1)}, ··· 526 515 .lpm_live_status_offset = MTL_LPM_LIVE_STATUS_OFFSET, 527 516 .s0ix_blocker_maps = ptl_pcdp_blk_maps, 528 517 .s0ix_blocker_offset = LNL_S0IX_BLOCKER_OFFSET, 518 + .num_s0ix_blocker = PTL_NUM_S0IX_BLOCKER, 519 + .blocker_req_offset = PTL_BLK_REQ_OFFSET, 520 + }; 521 + 522 + static struct pmc_info ptl_pmc_info_list[] = { 523 + { 524 + .guid = PCDP_LPM_REQ_GUID, 525 + .devid = PMC_DEVID_PTL_PCDH, 526 + .map = &ptl_pcdp_reg_map, 527 + }, 528 + { 529 + .guid = PCDP_LPM_REQ_GUID, 530 + .devid = PMC_DEVID_PTL_PCDP, 531 + .map = &ptl_pcdp_reg_map, 532 + }, 533 + {} 529 534 }; 530 535 531 536 #define PTL_NPU_PCI_DEV 0xb03e ··· 570 543 } 571 544 572 545 struct pmc_dev_info ptl_pmc_dev = { 546 + .pci_func = 2, 547 + .regmap_list = ptl_pmc_info_list, 573 548 .map = &ptl_pcdp_reg_map, 549 + .sub_req_show = &pmc_core_substate_blk_req_fops, 574 550 .suspend = cnl_suspend, 575 551 .resume = ptl_resume, 576 552 .init = ptl_core_init, 553 + .sub_req = pmc_core_pmt_get_blk_sub_req, 577 554 };