fdt: Swap the signature for board_fdt_blob_setup()

This returns a devicetree and updates a parameter with an error code.
Swap it, since this fits better with the way U-Boot normally works. It
also (more easily) allows leaving the existing pointer unchanged.

No yaks were harmed in this change, but there is a very small code-size
reduction.

For sifive, the OF_BOARD option must be set for the function to be
called, so there is no point in checking it again. Also OF_SEPARATE is
defined always.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Matthias Brugger <mbrugger@suse.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
[trini: Update total_compute]
Signed-off-by: Tom Rini <trini@konsulko.com>
diff --git a/arch/arm/mach-stm32mp/boot_params.c b/arch/arm/mach-stm32mp/boot_params.c
index ebddf6a..2d058ed 100644
--- a/arch/arm/mach-stm32mp/boot_params.c
+++ b/arch/arm/mach-stm32mp/boot_params.c
@@ -6,6 +6,7 @@
 #define LOG_CATEGORY LOGC_ARCH
 
 #include <config.h>
+#include <errno.h>
 #include <log.h>
 #include <linux/libfdt.h>
 #include <asm/arch/sys_proto.h>
@@ -16,20 +17,22 @@
  * Use the saved FDT address provided by TF-A at boot time (NT_FW_CONFIG =
  * Non Trusted Firmware configuration file) when the pointer is valid
  */
-void *board_fdt_blob_setup(int *err)
+int board_fdt_blob_setup(void **fdtp)
 {
 	unsigned long nt_fw_dtb = get_stm32mp_bl2_dtb();
 
 	log_debug("%s: nt_fw_dtb=%lx\n", __func__, nt_fw_dtb);
 
-	*err = 0;
 	/* use external device tree only if address is valid */
-	if (nt_fw_dtb >= STM32_DDR_BASE) {
-		if (fdt_magic(nt_fw_dtb) == FDT_MAGIC)
-			return (void *)nt_fw_dtb;
-		log_debug("%s: DTB not found.\n", __func__);
+	if (nt_fw_dtb < STM32_DDR_BASE ||
+	    fdt_magic(nt_fw_dtb) != FDT_MAGIC) {
+		log_debug("DTB not found.\n");
+		log_debug("fall back to builtin DTB, %p\n", _end);
+
+		return -EEXIST;
 	}
-	log_debug("%s: fall back to builtin DTB, %p\n", __func__, _end);
+
+	*fdtp = (void *)nt_fw_dtb;
 
-	return (void *)_end;
+	return 0;
 }