[U-Boot] [U-Boot,v3,04/19] dm: core: add dev_read_addr_ptr()

Dr. Philipp Tomsich philipp.tomsich at theobroma-systems.com
Fri Oct 6 12:00:45 UTC 2017


> On 6 Oct 2017, at 13:47, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
> 
> On 09/11/2017 10:04 PM, Philipp Tomsich wrote:
>> The dev_read_addr_ptr() mimics the behaviour of the devfdt_get_addr_ptr(),
>> retrieving the first address of the node's reg-property and returning
>> it as a pointer (or NULL on failure).
>> 
>> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
>> Acked-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
>> ---
>> 
>> Changes in v3: None
>> Changes in v2:
>> - implements the dev_read_addr_ptr() function
>> 
>> drivers/core/read.c |  7 +++++++
>> include/dm/read.h   | 15 +++++++++++++++
>> 2 files changed, 22 insertions(+)
>> 
>> diff --git a/drivers/core/read.c b/drivers/core/read.c
>> index 6acb333..065589a 100644
>> --- a/drivers/core/read.c
>> +++ b/drivers/core/read.c
>> @@ -57,6 +57,13 @@ fdt_addr_t dev_read_addr(struct udevice *dev)
>> 	return dev_read_addr_index(dev, 0);
>> }
>> 
>> +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;
> 
> Hello Philipp,
> 
> this line produces a compiler warning:
> 
>   sandbox:  +   sandbox
> +  return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
> +                                            ^
> w+drivers/core/read.c: In function ?dev_read_addr_ptr?:
> w+drivers/core/read.c:64:44: warning: cast to pointer from integer of
> different size [-Wint-to-pointer-cast]
> 
> Could you, please, provide a follow-up patch.

Heinrich,

I don’t fully understand what exactly to do here, as there is a patch to
address this in flight (https://patchwork.ozlabs.org/patch/819567/) and
you had even been on the CC-list for that one…

Regards,
Philipp.

> 
> Regards
> 
> Heinrich
> 
>> +}
>> +
>> fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property,
>> 				fdt_size_t *sizep)
>> {
>> diff --git a/include/dm/read.h b/include/dm/read.h
>> index 49d69c9..e7f7125 100644
>> --- a/include/dm/read.h
>> +++ b/include/dm/read.h
>> @@ -113,6 +113,16 @@ fdt_addr_t dev_read_addr_index(struct udevice *dev, int index);
>> fdt_addr_t dev_read_addr(struct udevice *dev);
>> 
>> /**
>> + * dev_read_addr_ptr() - Get the reg property of a device
>> + *                       as a pointer
>> + *
>> + * @dev: Device to read from
>> + *
>> + * @return pointer or NULL if not found
>> + */
>> +void *dev_read_addr_ptr(struct udevice *dev);
>> +
>> +/**
>>  * dev_read_addr_size() - get address and size from a device property
>>  *
>>  * This does no address translation. It simply reads an property that contains
>> @@ -417,6 +427,11 @@ static inline fdt_addr_t dev_read_addr(struct udevice *dev)
>> 	return devfdt_get_addr(dev);
>> }
>> 
>> +static inline void *dev_read_addr_ptr(struct udevice *dev)
>> +{
>> +	return devfdt_get_addr_ptr(dev);
>> +}
>> +
>> static inline fdt_addr_t dev_read_addr_size(struct udevice *dev,
>> 					    const char *propname,
>> 					    fdt_size_t *sizep)
>> 
> 



More information about the U-Boot mailing list