platform/x86/intel/pmc/lnl: Remove SSRAM support
authorDavid E. Box <david.e.box@linux.intel.com>
Tue, 27 Feb 2024 19:01:33 +0000 (11:01 -0800)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 12 Mar 2024 10:47:51 +0000 (12:47 +0200)
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: 3748dfdae2a6 ("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>
drivers/platform/x86/intel/pmc/lnl.c

index abad17cdd3d787cff7a311e6e7f7ed11d7c7281f..068d72504683f492a8c5671b8fb58a021797ed9d 100644 (file)
 
 #include "core.h"
 
-#define SOCM_LPM_REQ_GUID      0x11594920
-
-#define PMC_DEVID_SOCM 0xa87f
-
-static const u8 LNL_LPM_REG_INDEX[] = {0, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20};
-
-static struct pmc_info lnl_pmc_info_list[] = {
-       {
-               .guid   = SOCM_LPM_REQ_GUID,
-               .devid  = PMC_DEVID_SOCM,
-               .map    = &lnl_socm_reg_map,
-       },
-       {}
-};
-
 const struct pmc_bit_map lnl_ltr_show_map[] = {
        {"SOUTHPORT_A",         CNP_PMC_LTR_SPA},
        {"SOUTHPORT_B",         CNP_PMC_LTR_SPB},
@@ -490,7 +475,6 @@ const struct pmc_reg_map lnl_socm_reg_map = {
        .lpm_sts = lnl_lpm_maps,
        .lpm_status_offset = MTL_LPM_STATUS_OFFSET,
        .lpm_live_status_offset = MTL_LPM_LIVE_STATUS_OFFSET,
-       .lpm_reg_index = LNL_LPM_REG_INDEX,
 };
 
 #define LNL_NPU_PCI_DEV                0x643e
@@ -517,33 +501,19 @@ static int lnl_resume(struct pmc_dev *pmcdev)
 int lnl_core_init(struct pmc_dev *pmcdev)
 {
        int ret;
-       int func = 2;
-       bool ssram_init = true;
        struct pmc *pmc = pmcdev->pmcs[PMC_IDX_SOC];
 
        lnl_d3_fixup();
 
        pmcdev->suspend = cnl_suspend;
        pmcdev->resume = lnl_resume;
-       pmcdev->regmap_list = lnl_pmc_info_list;
-       ret = pmc_core_ssram_init(pmcdev, func);
-
-       /* If regbase not assigned, set map and discover using legacy method */
-       if (ret) {
-               ssram_init = false;
-               pmc->map = &lnl_socm_reg_map;
-               ret = get_primary_reg_base(pmc);
-               if (ret)
-                       return ret;
-       }
 
-       pmc_core_get_low_power_modes(pmcdev);
+       pmc->map = &lnl_socm_reg_map;
+       ret = get_primary_reg_base(pmc);
+       if (ret)
+               return ret;
 
-       if (ssram_init) {
-               ret = pmc_core_ssram_get_lpm_reqs(pmcdev);
-               if (ret)
-                       return ret;
-       }
+       pmc_core_get_low_power_modes(pmcdev);
 
        return 0;
 }