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 Wildcat Lake

Enable Wildcat 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/20251105215020.1984036-2-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
a9ed446c bc977e5d

+20
+2
drivers/platform/x86/intel/pmc/core.h
··· 304 304 /* Wildcat Lake */ 305 305 #define WCL_PMC_LTR_RESERVED 0x1B64 306 306 #define WCL_PCD_PMC_MMIO_REG_LEN 0x3178 307 + #define WCL_NUM_S0IX_BLOCKER 94 308 + #define WCL_BLK_REQ_OFFSET 50 307 309 308 310 /* SSRAM PMC Device ID */ 309 311 /* LNL */
+18
drivers/platform/x86/intel/pmc/wcl.c
··· 11 11 12 12 #include "core.h" 13 13 14 + /* PMC SSRAM PMT Telemetry GUIDS */ 15 + #define PCDN_LPM_REQ_GUID 0x33747648 16 + 14 17 static const struct pmc_bit_map wcl_pcdn_pfear_map[] = { 15 18 {"PMC_0", BIT(0)}, 16 19 {"FUSE_OSSE", BIT(1)}, ··· 456 453 .lpm_live_status_offset = MTL_LPM_LIVE_STATUS_OFFSET, 457 454 .s0ix_blocker_maps = wcl_pcdn_blk_maps, 458 455 .s0ix_blocker_offset = LNL_S0IX_BLOCKER_OFFSET, 456 + .num_s0ix_blocker = WCL_NUM_S0IX_BLOCKER, 457 + .blocker_req_offset = WCL_BLK_REQ_OFFSET, 458 + .lpm_req_guid = PCDN_LPM_REQ_GUID, 459 + }; 460 + 461 + static struct pmc_info wcl_pmc_info_list[] = { 462 + { 463 + .devid = PMC_DEVID_WCL_PCDN, 464 + .map = &wcl_pcdn_reg_map, 465 + }, 466 + {} 459 467 }; 460 468 461 469 #define WCL_NPU_PCI_DEV 0xfd3e ··· 493 479 } 494 480 495 481 struct pmc_dev_info wcl_pmc_dev = { 482 + .pci_func = 2, 483 + .regmap_list = wcl_pmc_info_list, 496 484 .map = &wcl_pcdn_reg_map, 485 + .sub_req_show = &pmc_core_substate_blk_req_fops, 497 486 .suspend = cnl_suspend, 498 487 .resume = wcl_resume, 499 488 .init = wcl_core_init, 489 + .sub_req = pmc_core_pmt_get_blk_sub_req, 500 490 };