armv8: include psci_update_dt() unconditionally
authorMichael Walle <michael@walle.cc>
Mon, 28 Feb 2022 12:48:37 +0000 (13:48 +0100)
committerPriyanka Jain <priyanka.jain@nxp.com>
Tue, 26 Apr 2022 11:43:57 +0000 (17:13 +0530)
psci_update_dt() is also required if CONFIG_ARMV8_PSCI is set, that is,
if u-boot is the PSCI provider.
Guard the check which is intended to call into the PSCI implementation
in the secure firmware, by the proper macro SEC_FIRMWARE_ARMV8_PSCI.

Mark the function as weak because - unfortunately - there is already
a stub of the same function in arch/arm/mach-rmobile/psci-r8a779a0.c
which does not the same as the common one.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
arch/arm/cpu/armv8/cpu-dt.c

index 61c38b1..9bfe381 100644 (file)
@@ -8,9 +8,9 @@
 #include <asm/psci.h>
 #include <asm/system.h>
 #include <asm/armv8/sec_firmware.h>
+#include <linux/libfdt.h>
 
-#if CONFIG_IS_ENABLED(ARMV8_SEC_FIRMWARE_SUPPORT)
-int psci_update_dt(void *fdt)
+__weak int psci_update_dt(void *fdt)
 {
        /*
         * If the PSCI in SEC Firmware didn't work, avoid to update the
@@ -18,8 +18,10 @@ int psci_update_dt(void *fdt)
         * number to support detecting PSCI dynamically and then switching
         * the SMP boot method between PSCI and spin-table.
         */
-       if (sec_firmware_support_psci_version() == PSCI_INVALID_VER)
+       if (CONFIG_IS_ENABLED(SEC_FIRMWARE_ARMV8_PSCI) &&
+           sec_firmware_support_psci_version() == PSCI_INVALID_VER)
                return 0;
+
        fdt_psci(fdt);
 
 #if defined(CONFIG_ARMV8_PSCI) && !defined(CONFIG_ARMV8_SECURE_BASE)
@@ -30,4 +32,3 @@ int psci_update_dt(void *fdt)
 
        return 0;
 }
-#endif