dm: core: fix dev_read_alias_highest_id() without libfdt
authorMichael Walle <michael@walle.cc>
Mon, 1 Jun 2020 23:47:08 +0000 (01:47 +0200)
committerSimon Glass <sjg@chromium.org>
Fri, 12 Jun 2020 02:52:11 +0000 (20:52 -0600)
If CONFIG_DM_DEV_READ_INLINE is set, dev_read_alias_highest_id() calls
libfdt_get_highest_id(). But this function is only available if we have
libfdt compiled in. If its not available return -1, which matches the
return code for no alias found.

This fixes the following error on omapl138_lcdk:
arm-linux-gnueabi-ld.bfd: drivers/built-in.o: in function `dev_read_alias_highest_id':
/home/mw/repo/u-boot/include/dm/read.h:986: undefined reference to `fdtdec_get_alias_highest_id'

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Simon Glass <sjg@chromium.org>
include/dm/read.h

index b952551d5552dc04e097c230f5a42cb8a723e932..1c1bc3702fd369da56e0dce28ff640785b0fff7d 100644 (file)
@@ -983,6 +983,8 @@ static inline u64 dev_translate_dma_address(const struct udevice *dev,
 
 static inline int dev_read_alias_highest_id(const char *stem)
 {
+       if (!CONFIG_IS_ENABLED(OF_LIBFDT))
+               return -1;
        return fdtdec_get_alias_highest_id(gd->fdt_blob, stem);
 }