Re: [PATCH v9 02/12] drivers: base: cacheinfo: setup DT cache properties early

From: Sudeep Holla
Date: Mon May 21 2018 - 05:20:38 EST




On 21/05/18 10:27, Sudeep Holla wrote:
>
>
> On 18/05/18 22:50, Andy Shevchenko wrote:
>> On Thu, May 17, 2018 at 6:47 PM, Sudeep Holla <sudeep.holla@xxxxxxx> wrote:
>>
>>> Is below patch does what you were looking for ?
>>
>> Somewhat.
>> See below for some minors.
>>
>
> Thanks
>
>>> of_property_read_u64 searches for a property in a device node and read
>>> a 64-bit value from it. Instead of using of_get_property to get the
>>> property and then read 64-bit value using of_read_number, we can make
>>> use of of_property_read_u64.
>>
>> Suggested-by?
>>
>
> Yes indeed, added it locally after I sent out this patch. Will send out
> a proper patch soon.
>
>>> Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
>>
>>
>>> - cache_size = of_get_property(np, propname, NULL);
>>> - if (cache_size)
>>> - this_leaf->size = of_read_number(cache_size, 1);
>>> + if (!of_property_read_u64(np, propname, &cache_size))
>>> + this_leaf->size = cache_size;
>>
>> I suppose it's something like this
>>
>> ret = of_property_...(..., &this_leaf->VAR);
>> if (ret)
>> warning / set default / etc
>
> OK, I do prefer this but once I was told not to use structure elements
> directly like that, but should be harmless in this particular case, will
> do so.
>

I spoke too early, I need to retain local u64 variable otherwise we get
incompatible pointer type(expected 'u64 *' but argument is of type
âunsigned int *â) error with Werror=incompatible-pointer-types.

--
Regards,
Sudeep