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-snapdragon/board.c b/arch/arm/mach-snapdragon/board.c
index 75a880f..f1319df 100644
--- a/arch/arm/mach-snapdragon/board.c
+++ b/arch/arm/mach-snapdragon/board.c
@@ -150,12 +150,12 @@
  * or for supporting quirky devices where it's easier to leave the downstream DT in place
  * to improve ABL compatibility. Otherwise, we use the DT provided by ABL.
  */
-void *board_fdt_blob_setup(int *err)
+int board_fdt_blob_setup(void **fdtp)
 {
 	struct fdt_header *fdt;
 	bool internal_valid, external_valid;
+	int ret = 0;
 
-	*err = 0;
 	fdt = (struct fdt_header *)get_prev_bl_fdt_addr();
 	external_valid = fdt && !fdt_check_header(fdt);
 	internal_valid = !fdt_check_header(gd->fdt_blob);
@@ -170,10 +170,11 @@
 
 	if (internal_valid) {
 		debug("Using built in FDT\n");
+		ret = -EEXIST;
 	} else {
 		debug("Using external FDT\n");
 		/* So we can use it before returning */
-		gd->fdt_blob = fdt;
+		*fdtp = fdt;
 	}
 
 	/*
@@ -182,7 +183,7 @@
 	 */
 	qcom_parse_memory();
 
-	return (void *)gd->fdt_blob;
+	return ret;
 }
 
 void reset_cpu(void)