Hi Stefan, On 20 April 2016 at 10:10, Simon Glass <s...@chromium.org> wrote: > Hi Stefan, > > On 20 April 2016 at 10:08, Stefan Roese <s...@denx.de> wrote: >> On some platforms (e.g. x86), the return value of dev_get_addr() can't >> be assigned to a pointer type variable directly. As there might be a >> difference between the size of fdt_addr_t and the pointer type. On >> x86 for example, "fdt_addr_t" is 64bit but "void *" only 32bit. So >> assigning the register base directly in dev_get_addr() results in this >> compilation warning: >> warning: cast to pointer from integer of different size >> >> This patch introduces the new function dev_get_addr_ptr() that >> returns a pointer to the 'reg' address that can be used by drivers >> in this case. >> >> Signed-off-by: Stefan Roese <s...@denx.de> >> Cc: Simon Glass <s...@chromium.org> >> --- >> drivers/core/device.c | 5 +++++ >> include/dm/device.h | 10 ++++++++++ >> 2 files changed, 15 insertions(+) > > Reviewed-by: Simon Glass <s...@chromium.org> > > Request below... > >> >> diff --git a/drivers/core/device.c b/drivers/core/device.c >> index 269087a..1322991 100644 >> --- a/drivers/core/device.c >> +++ b/drivers/core/device.c >> @@ -673,6 +673,11 @@ fdt_addr_t dev_get_addr(struct udevice *dev) >> return dev_get_addr_index(dev, 0); >> } >> >> +void *dev_get_addr_ptr(struct udevice *dev) >> +{ >> + return (void *)(uintptr_t)dev_get_addr_index(dev, 0); >> +} >> + >> bool device_has_children(struct udevice *dev) >> { >> return !list_empty(&dev->child_head); >> diff --git a/include/dm/device.h b/include/dm/device.h >> index dad7591..0bcbead 100644 >> --- a/include/dm/device.h >> +++ b/include/dm/device.h >> @@ -454,6 +454,16 @@ int device_find_next_child(struct udevice **devp); >> fdt_addr_t dev_get_addr(struct udevice *dev); >> >> /** >> + * dev_get_addr_ptr() - Return pointer to the address of the reg property >> + * of a device >> + * >> + * @dev: Pointer to a device >> + * >> + * @return Pointer to addr > > Please mention the error condition, e.g. ", or NULL if there is no > such property"
I'd like to get this applied. If you like I can fix this when applying? > >> + */ >> +void *dev_get_addr_ptr(struct udevice *dev); >> + >> +/** >> * dev_get_addr_index() - Get the indexed reg property of a device >> * >> * @dev: Pointer to a device >> -- >> 2.8.1 Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot