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/board/armltd/total_compute/total_compute.c b/board/armltd/total_compute/total_compute.c
index 1336d2e..75ba3c3 100644
--- a/board/armltd/total_compute/total_compute.c
+++ b/board/armltd/total_compute/total_compute.c
@@ -37,15 +37,13 @@
  */
 unsigned long __section(".data") fw_dtb_pointer;
 
-void *board_fdt_blob_setup(int *err)
+int board_fdt_blob_setup(void **fdtp)
 {
-	*err = 0;
-	if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC) {
-		*err = -ENXIO;
-		return NULL;
-	}
+	if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
+		return -ENXIO;
 
-	return (void *)fw_dtb_pointer;
+	*fdtp = (void *)fw_dtb_pointer;
+	return 0;
 }
 
 int misc_init_r(void)
diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
index 0119f54..b5ede58 100644
--- a/board/armltd/vexpress64/vexpress64.c
+++ b/board/armltd/vexpress64/vexpress64.c
@@ -168,42 +168,37 @@
 	return fdt_subnode_offset((void *)dtb_ptr, 0, "memory") >= 0;
 }
 
-void *board_fdt_blob_setup(int *err)
+int board_fdt_blob_setup(void **fdtp)
 {
 #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
 	phys_addr_t fdt_rom_addr = find_dtb_in_nor_flash(CONFIG_JUNO_DTB_PART);
 
-	*err = 0;
-	if (fdt_rom_addr == ~0UL) {
-		*err = -ENXIO;
-		return NULL;
-	}
+	if (fdt_rom_addr == ~0UL)
+		return -ENXIO;
 
-	return (void *)fdt_rom_addr;
+	*fdtp = (void *)fdt_rom_addr;
+	return 0;
 #endif
 
 #ifdef VEXPRESS_FDT_ADDR
 	if (fdt_magic(VEXPRESS_FDT_ADDR) == FDT_MAGIC) {
-		*err = 0;
-		return (void *)VEXPRESS_FDT_ADDR;
+		*fdtp = (void *)VEXPRESS_FDT_ADDR;
+		return 0;
 	}
 #endif
 
 	if (is_valid_dtb(prior_stage_fdt_address[1])) {
-		*err = 0;
-		return (void *)prior_stage_fdt_address[1];
+		*fdtp = (void *)prior_stage_fdt_address[1];
+		return 0;
 	} else if (is_valid_dtb(prior_stage_fdt_address[0])) {
-		*err = 0;
-		return (void *)prior_stage_fdt_address[0];
+		*fdtp = (void *)prior_stage_fdt_address[0];
+		return 0;
 	}
 
-	if (fdt_magic(gd->fdt_blob) == FDT_MAGIC) {
-		*err = 0;
-		return (void *)gd->fdt_blob;
-	}
+	if (fdt_magic(*fdtp) == FDT_MAGIC)
+		return 0;
 
-	*err = -ENXIO;
-	return NULL;
+	return -ENXIO;
 }
 #endif