platform/x86/intel/pmc/mtl: Use return value from pmc_core_ssram_init()
authorDavid E. Box <david.e.box@linux.intel.com>
Wed, 29 Nov 2023 22:21:26 +0000 (14:21 -0800)
committerHans de Goede <hdegoede@redhat.com>
Mon, 4 Dec 2023 13:53:43 +0000 (14:53 +0100)
Instead of checking for a NULL regbase, use the return value from
pmc_core_ssram_init() to check if PMC discovery was successful. If not, use
the legacy enumeration method (which only works for the primary PMC).

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20231129222132.2331261-15-david.e.box@linux.intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/intel/pmc/mtl.c

index c3b5f4fe01d12e6a16b22f972d0850e01e243c71..d1d3d33fb4b8909e7f98c81d456393d5c4b6c551 100644 (file)
@@ -990,12 +990,16 @@ int mtl_core_init(struct pmc_dev *pmcdev)
        mtl_d3_fixup();
 
        pmcdev->resume = mtl_resume;
-
        pmcdev->regmap_list = mtl_pmc_info_list;
-       pmc_core_ssram_init(pmcdev);
 
-       /* If regbase not assigned, set map and discover using legacy method */
-       if (!pmc->regbase) {
+       /*
+        * If ssram init fails use legacy method to at least get the
+        * primary PMC
+        */
+       ret = pmc_core_ssram_init(pmcdev);
+       if (ret) {
+               dev_warn(&pmcdev->pdev->dev,
+                        "ssram init failed, %d, using legacy init\n", ret);
                pmc->map = &mtl_socm_reg_map;
                ret = get_primary_reg_base(pmc);
                if (ret)