All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/5] Enable SSRAM support in PTL and LNL
@ 2025-06-21 21:05 Xi Pardee
  2025-06-21 21:05 ` [PATCH v1 1/5] platform/x86:intel/pmc: Enable SSRAM support for Lunar Lake Xi Pardee
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Xi Pardee @ 2025-06-21 21:05 UTC (permalink / raw)
  To: xi.pardee, irenic.rajneesh, david.e.box, hdegoede, ilpo.jarvinen,
	platform-driver-x86, linux-kernel, linux-pm

This series enables SSRAM support, including achieving PMC information
and low power mode substate requirements from telemetry region, in Lunar
Lake and Panther Lake platforms for Intel PMC Core driver. 

The first patch enables SSRAM support for Lunar Lake. The next three
patches introduces a new table in telemetry region to get substate
requirement information for platforms starting from Panther Lake. The
last patch enables SSRAM support for Panther Lake.

Xi Pardee (5):
  platform/x86:intel/pmc: Enable SSRAM support for Lunar Lake
  platform/x86:intel/pmc: Move telemetry endpoint register handling
  platform/x86:intel/pmc: Improve function to show substate header
  platform/x86:intel/pmc: Show substate requirement for S0ix blockers
  platform/x86:intel/pmc: Enable SSRAM support for Panther Lake

 drivers/platform/x86/intel/pmc/arl.c  |   1 +
 drivers/platform/x86/intel/pmc/core.c | 163 +++++++++++++++++++++-----
 drivers/platform/x86/intel/pmc/core.h |  14 +++
 drivers/platform/x86/intel/pmc/lnl.c  |  17 +++
 drivers/platform/x86/intel/pmc/mtl.c  |   1 +
 drivers/platform/x86/intel/pmc/ptl.c  |  30 +++++
 6 files changed, 194 insertions(+), 32 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: [PATCH v1 4/5] platform/x86:intel/pmc: Show substate requirement for S0ix blockers
@ 2025-06-24 10:50 kernel test robot
  0 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2025-06-24 10:50 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250621210529.237964-5-xi.pardee@linux.intel.com>
References: <20250621210529.237964-5-xi.pardee@linux.intel.com>
TO: Xi Pardee <xi.pardee@linux.intel.com>

Hi Xi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on v6.16-rc3 next-20250623]
[cannot apply to amd-pstate/linux-next amd-pstate/bleeding-edge]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Xi-Pardee/platform-x86-intel-pmc-Enable-SSRAM-support-for-Lunar-Lake/20250622-050804
base:   linus/master
patch link:    https://lore.kernel.org/r/20250621210529.237964-5-xi.pardee%40linux.intel.com
patch subject: [PATCH v1 4/5] platform/x86:intel/pmc: Show substate requirement for S0ix blockers
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: i386-randconfig-141-20250623 (https://download.01.org/0day-ci/archive/20250624/202506241840.0POVt4tf-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202506241840.0POVt4tf-lkp@intel.com/

New smatch warnings:
drivers/platform/x86/intel/pmc/core.c:1525 pmc_core_pmt_get_blk_sub_req() error: uninitialized symbol 'ret'.
drivers/platform/x86/intel/pmc/core.c:1559 pmc_core_get_telem_info() error: uninitialized symbol 'ret'.

Old smatch warnings:
drivers/platform/x86/intel/pmc/core.c:502 pmc_core_send_ltr_ignore() error: uninitialized symbol 'pmc'.
drivers/platform/x86/intel/pmc/core.c:502 pmc_core_send_ltr_ignore() error: uninitialized symbol 'map'.
drivers/platform/x86/intel/pmc/core.c:502 pmc_core_send_ltr_ignore() error: we previously assumed 'pmc' could be null (see line 480)
drivers/platform/x86/intel/pmc/core.c:1494 pmc_core_pmt_get_lpm_req() error: uninitialized symbol 'ret'.

vim +/ret +1525 drivers/platform/x86/intel/pmc/core.c

78a7491d5cba8b Xi Pardee 2025-04-09  1496  
f3435ca196060d Xi Pardee 2025-06-21  1497  static int pmc_core_pmt_get_blk_sub_req(struct pmc_dev *pmcdev, struct pmc *pmc,
f3435ca196060d Xi Pardee 2025-06-21  1498  					struct telem_endpoint *ep)
f3435ca196060d Xi Pardee 2025-06-21  1499  {
f3435ca196060d Xi Pardee 2025-06-21  1500  	u32 num_blocker, sample_id;
f3435ca196060d Xi Pardee 2025-06-21  1501  	unsigned int index;
f3435ca196060d Xi Pardee 2025-06-21  1502  	u32 *req_offset;
f3435ca196060d Xi Pardee 2025-06-21  1503  	int ret;
f3435ca196060d Xi Pardee 2025-06-21  1504  
f3435ca196060d Xi Pardee 2025-06-21  1505  	num_blocker = pmc->map->num_s0ix_blocker;
f3435ca196060d Xi Pardee 2025-06-21  1506  	sample_id = pmc->map->blocker_req_offset;
f3435ca196060d Xi Pardee 2025-06-21  1507  
f3435ca196060d Xi Pardee 2025-06-21  1508  	pmc->blk_sub_req_regs = devm_kzalloc(&pmcdev->pdev->dev,
f3435ca196060d Xi Pardee 2025-06-21  1509  					 num_blocker * sizeof(u32),
f3435ca196060d Xi Pardee 2025-06-21  1510  					 GFP_KERNEL);
f3435ca196060d Xi Pardee 2025-06-21  1511  	if (!pmc->blk_sub_req_regs)
f3435ca196060d Xi Pardee 2025-06-21  1512  		ret = -ENOMEM;
f3435ca196060d Xi Pardee 2025-06-21  1513  
f3435ca196060d Xi Pardee 2025-06-21  1514  	req_offset = pmc->blk_sub_req_regs;
f3435ca196060d Xi Pardee 2025-06-21  1515  	for (index = 0; index < num_blocker; index++) {
f3435ca196060d Xi Pardee 2025-06-21  1516  		ret = pmt_telem_read32(ep, sample_id, req_offset, 1);
f3435ca196060d Xi Pardee 2025-06-21  1517  		if (ret) {
f3435ca196060d Xi Pardee 2025-06-21  1518  			dev_err(&pmcdev->pdev->dev,
f3435ca196060d Xi Pardee 2025-06-21  1519  				"couldn't read Low Power Mode requirements: %d\n", ret);
f3435ca196060d Xi Pardee 2025-06-21  1520  			return ret;
f3435ca196060d Xi Pardee 2025-06-21  1521  		}
f3435ca196060d Xi Pardee 2025-06-21  1522  		sample_id++;
f3435ca196060d Xi Pardee 2025-06-21  1523  		req_offset++;
f3435ca196060d Xi Pardee 2025-06-21  1524  	}
f3435ca196060d Xi Pardee 2025-06-21 @1525  	return ret;
f3435ca196060d Xi Pardee 2025-06-21  1526  }
f3435ca196060d Xi Pardee 2025-06-21  1527  
f3435ca196060d Xi Pardee 2025-06-21  1528  static int pmc_core_get_telem_info(struct pmc_dev *pmcdev, int func, unsigned int telem_info)
78a7491d5cba8b Xi Pardee 2025-04-09  1529  {
b5d46539626833 Xi Pardee 2025-04-25  1530  	struct pci_dev *pcidev __free(pci_dev_put) = NULL;
d7bc7e19147769 Xi Pardee 2025-06-21  1531  	struct telem_endpoint *ep;
052fabddeaa70b Xi Pardee 2025-04-09  1532  	unsigned int i;
d7bc7e19147769 Xi Pardee 2025-06-21  1533  	u32 guid;
052fabddeaa70b Xi Pardee 2025-04-09  1534  	int ret;
78a7491d5cba8b Xi Pardee 2025-04-09  1535  
b5d46539626833 Xi Pardee 2025-04-25  1536  	pcidev = pci_get_domain_bus_and_slot(0, 0, PCI_DEVFN(20, func));
b5d46539626833 Xi Pardee 2025-04-25  1537  	if (!pcidev)
78a7491d5cba8b Xi Pardee 2025-04-09  1538  		return -ENODEV;
78a7491d5cba8b Xi Pardee 2025-04-09  1539  
78a7491d5cba8b Xi Pardee 2025-04-09  1540  	for (i = 0; i < ARRAY_SIZE(pmcdev->pmcs); ++i) {
d7bc7e19147769 Xi Pardee 2025-06-21  1541  		struct pmc *pmc;
d7bc7e19147769 Xi Pardee 2025-06-21  1542  
d7bc7e19147769 Xi Pardee 2025-06-21  1543  		pmc = pmcdev->pmcs[i];
d7bc7e19147769 Xi Pardee 2025-06-21  1544  		if (!pmc)
78a7491d5cba8b Xi Pardee 2025-04-09  1545  			continue;
78a7491d5cba8b Xi Pardee 2025-04-09  1546  
d7bc7e19147769 Xi Pardee 2025-06-21  1547  		guid = pmc_core_find_guid(pmcdev->regmap_list, pmc->map);
d7bc7e19147769 Xi Pardee 2025-06-21  1548  		if (!guid)
d7bc7e19147769 Xi Pardee 2025-06-21  1549  			return -ENXIO;
d7bc7e19147769 Xi Pardee 2025-06-21  1550  
d7bc7e19147769 Xi Pardee 2025-06-21  1551  		ep = pmt_telem_find_and_register_endpoint(pcidev, guid, 0);
d7bc7e19147769 Xi Pardee 2025-06-21  1552  		if (IS_ERR(ep)) {
d7bc7e19147769 Xi Pardee 2025-06-21  1553  			dev_dbg(&pmcdev->pdev->dev, "couldn't get telem endpoint %pe", ep);
d7bc7e19147769 Xi Pardee 2025-06-21  1554  			return -EPROBE_DEFER;
d7bc7e19147769 Xi Pardee 2025-06-21  1555  		}
d7bc7e19147769 Xi Pardee 2025-06-21  1556  
f3435ca196060d Xi Pardee 2025-06-21  1557  		if (telem_info & SUB_REQ_LPM)
d7bc7e19147769 Xi Pardee 2025-06-21  1558  			ret = pmc_core_pmt_get_lpm_req(pmcdev, pmc, ep);
78a7491d5cba8b Xi Pardee 2025-04-09 @1559  		if (ret)
f3435ca196060d Xi Pardee 2025-06-21  1560  			goto unregister_ep;
f3435ca196060d Xi Pardee 2025-06-21  1561  
f3435ca196060d Xi Pardee 2025-06-21  1562  		if (telem_info & SUB_REQ_BLK)
f3435ca196060d Xi Pardee 2025-06-21  1563  			ret = pmc_core_pmt_get_blk_sub_req(pmcdev, pmc, ep);
f3435ca196060d Xi Pardee 2025-06-21  1564  		if (ret)
f3435ca196060d Xi Pardee 2025-06-21  1565  			goto unregister_ep;
f3435ca196060d Xi Pardee 2025-06-21  1566  
f3435ca196060d Xi Pardee 2025-06-21  1567  		pmt_telem_unregister_endpoint(ep);
78a7491d5cba8b Xi Pardee 2025-04-09  1568  	}
78a7491d5cba8b Xi Pardee 2025-04-09  1569  
78a7491d5cba8b Xi Pardee 2025-04-09  1570  	return 0;
f3435ca196060d Xi Pardee 2025-06-21  1571  
f3435ca196060d Xi Pardee 2025-06-21  1572  unregister_ep:
f3435ca196060d Xi Pardee 2025-06-21  1573  	pmt_telem_unregister_endpoint(ep);
f3435ca196060d Xi Pardee 2025-06-21  1574  	return ret;
78a7491d5cba8b Xi Pardee 2025-04-09  1575  }
78a7491d5cba8b Xi Pardee 2025-04-09  1576  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

end of thread, other threads:[~2025-06-25  6:42 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-21 21:05 [PATCH v1 0/5] Enable SSRAM support in PTL and LNL Xi Pardee
2025-06-21 21:05 ` [PATCH v1 1/5] platform/x86:intel/pmc: Enable SSRAM support for Lunar Lake Xi Pardee
2025-06-21 21:05 ` [PATCH v1 2/5] platform/x86:intel/pmc: Move telemetry endpoint register handling Xi Pardee
2025-06-21 21:05 ` [PATCH v1 3/5] platform/x86:intel/pmc: Improve function to show substate header Xi Pardee
2025-06-21 21:05 ` [PATCH v1 4/5] platform/x86:intel/pmc: Show substate requirement for S0ix blockers Xi Pardee
2025-06-24 14:45   ` Dan Carpenter
2025-06-24 18:56     ` Xi Pardee
2025-06-25  6:42     ` Xi Pardee
2025-06-21 21:05 ` [PATCH v1 5/5] platform/x86:intel/pmc: Enable SSRAM support for Panther Lake Xi Pardee
  -- strict thread matches above, loose matches on Subject: below --
2025-06-24 10:50 [PATCH v1 4/5] platform/x86:intel/pmc: Show substate requirement for S0ix blockers kernel test robot

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.