fdt: Fix uncompress_blob() for U-Boot proper
authorMarek Vasut <marek.vasut@gmail.com>
Thu, 18 Oct 2018 18:37:05 +0000 (20:37 +0200)
committerSimon Glass <sjg@chromium.org>
Wed, 21 Nov 2018 02:14:22 +0000 (19:14 -0700)
When U-Boot proper is compiled with CONFIG_MULTI_DTB_FIT and tries
to call uncompress_blob(), it fails with -ENOTSUPP. This is because
the full implementation of this function which includes compression
is available only in SPL. In U-Boot proper or if the compression is
not enabled, the blob is not compressed and thus can be passed to
locate_dtb_in_fit() in fdtdec_setup() without any changes. Pass the
blob without any changes if compression is not enabled instead of
failing.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
lib/fdtdec.c

index a420ba18854fb48be8cc18bd313e96c84d64e15e..d28f2cbb1cf6a9aad1492bb294a3f84a02619826 100644 (file)
@@ -1198,7 +1198,8 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp)
 # else
 static int uncompress_blob(const void *src, ulong sz_src, void **dstp)
 {
-       return -ENOTSUPP;
+       *dstp = (void *)src;
+       return 0;
 }
 # endif
 #endif