diff options
author | Simon Glass <sjg@chromium.org> | 2017-09-28 06:35:15 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2017-11-16 18:45:05 -0700 |
commit | 8ccc2db6e84244e5cb57885dc9dfd7e752071b98 (patch) | |
tree | df1320df9fd4d15b5bf088e5f1c74dfb3af0cd7b /drivers | |
parent | 6dfd65f81fd060a85c961a84f85a286e8e96332c (diff) |
dm: core: Correct address cast in dev_read_addr_ptr()
This currently causes a warning in sandbox and will not do the right
thing:
drivers/core/read.c: In function ‘dev_read_addr_ptr’:
drivers/core/read.c:64:44: warning: cast to pointer from integer of
different size [-Wint-to-pointer-cast]
return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
Use map_sysmem() which is the correct way to convert an address to a
pointer.
Fixes: c131c8bca8 (dm: core: add dev_read_addr_ptr())
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/core/read.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/core/read.c b/drivers/core/read.c index eacf1716fd7..5d440cee721 100644 --- a/drivers/core/read.c +++ b/drivers/core/read.c @@ -7,6 +7,7 @@ #include <common.h> #include <dm.h> +#include <mapmem.h> #include <dm/of_access.h> int dev_read_u32_default(struct udevice *dev, const char *propname, int def) @@ -61,7 +62,7 @@ void *dev_read_addr_ptr(struct udevice *dev) { fdt_addr_t addr = dev_read_addr(dev); - return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr; + return (addr == FDT_ADDR_T_NONE) ? NULL : map_sysmem(addr, 0); } fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property, |