Skip to content

Commit e6ba4ac

Browse files
debox1ij-intel
authored andcommitted
platform/x86/intel/pmc/lnl: Remove SSRAM support
A recent PMC firmware change in Lunar Lake caused the pmc_core driver to fail to probe. This is due to a change in the GUID for PMC telemetry coming from the SSRAM device. Until a final release is ready this value may change again. In the meantime, disable the SSRAM support for Lunar Lake so the driver can load and provide some basic functionality. Fixes: 3748dfd ("platform/x86/intel/pmc: Add Lunar Lake M support to intel_pmc_core driver") Signed-off-by: "David E. Box" <david.e.box@linux.intel.com> Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Link: https://lore.kernel.org/r/20240227190134.1592072-2-david.e.box@linux.intel.com Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
1 parent 701d40a commit e6ba4ac

File tree

1 file changed

+5
-35
lines changed
  • drivers/platform/x86/intel/pmc

1 file changed

+5
-35
lines changed

drivers/platform/x86/intel/pmc/lnl.c

Lines changed: 5 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,6 @@
1313

1414
#include "core.h"
1515

16-
#define SOCM_LPM_REQ_GUID 0x11594920
17-
18-
#define PMC_DEVID_SOCM 0xa87f
19-
20-
static const u8 LNL_LPM_REG_INDEX[] = {0, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20};
21-
22-
static struct pmc_info lnl_pmc_info_list[] = {
23-
{
24-
.guid = SOCM_LPM_REQ_GUID,
25-
.devid = PMC_DEVID_SOCM,
26-
.map = &lnl_socm_reg_map,
27-
},
28-
{}
29-
};
30-
3116
const struct pmc_bit_map lnl_ltr_show_map[] = {
3217
{"SOUTHPORT_A", CNP_PMC_LTR_SPA},
3318
{"SOUTHPORT_B", CNP_PMC_LTR_SPB},
@@ -490,7 +475,6 @@ const struct pmc_reg_map lnl_socm_reg_map = {
490475
.lpm_sts = lnl_lpm_maps,
491476
.lpm_status_offset = MTL_LPM_STATUS_OFFSET,
492477
.lpm_live_status_offset = MTL_LPM_LIVE_STATUS_OFFSET,
493-
.lpm_reg_index = LNL_LPM_REG_INDEX,
494478
};
495479

496480
#define LNL_NPU_PCI_DEV 0x643e
@@ -517,33 +501,19 @@ static int lnl_resume(struct pmc_dev *pmcdev)
517501
int lnl_core_init(struct pmc_dev *pmcdev)
518502
{
519503
int ret;
520-
int func = 2;
521-
bool ssram_init = true;
522504
struct pmc *pmc = pmcdev->pmcs[PMC_IDX_SOC];
523505

524506
lnl_d3_fixup();
525507

526508
pmcdev->suspend = cnl_suspend;
527509
pmcdev->resume = lnl_resume;
528-
pmcdev->regmap_list = lnl_pmc_info_list;
529-
ret = pmc_core_ssram_init(pmcdev, func);
530-
531-
/* If regbase not assigned, set map and discover using legacy method */
532-
if (ret) {
533-
ssram_init = false;
534-
pmc->map = &lnl_socm_reg_map;
535-
ret = get_primary_reg_base(pmc);
536-
if (ret)
537-
return ret;
538-
}
539510

540-
pmc_core_get_low_power_modes(pmcdev);
511+
pmc->map = &lnl_socm_reg_map;
512+
ret = get_primary_reg_base(pmc);
513+
if (ret)
514+
return ret;
541515

542-
if (ssram_init) {
543-
ret = pmc_core_ssram_get_lpm_reqs(pmcdev);
544-
if (ret)
545-
return ret;
546-
}
516+
pmc_core_get_low_power_modes(pmcdev);
547517

548518
return 0;
549519
}

0 commit comments

Comments
 (0)