[U-Boot] [PATCH v3 3/9] dm: uclass: Add uclass_foreach_dev_probe
Patrice CHOTARD
patrice.chotard at st.com
Fri Oct 12 07:51:31 UTC 2018
Hi Bin
On 10/11/2018 11:06 AM, Bin Meng wrote:
> Hi Patrice,
>
> On Tue, Oct 9, 2018 at 9:41 PM Patrice Chotard <patrice.chotard at st.com> wrote:
>>
>> Add uclass_foreach_dev_probe() which iterates through
>> devices of a given uclass. Devices are probed if necessary
>> and are ready to use.
>>
>> Signed-off-by: Patrice Chotard <patrice.chotard at st.com>
>> Reviewed-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>> Changes in v3: None
>> Changes in v2: None
>>
>> include/dm/uclass.h | 16 ++++++++++++++++
>> 1 file changed, 16 insertions(+)
>>
>> diff --git a/include/dm/uclass.h b/include/dm/uclass.h
>> index 6e7c1cd3e8bc..10ccfdce951e 100644
>> --- a/include/dm/uclass.h
>> +++ b/include/dm/uclass.h
>> @@ -376,4 +376,20 @@ int uclass_resolve_seq(struct udevice *dev);
>> #define uclass_foreach_dev_safe(pos, next, uc) \
>> list_for_each_entry_safe(pos, next, &uc->dev_head, uclass_node)
>>
>> +/**
>> + * uclass_foreach_dev_probe() - Helper function to iteration through devices
>> + * of given uclass
>> + *
>> + * This creates a for() loop which works through the available devices in
>> + * a uclass in order from start to end. Devices are probed if necessary,
>> + * and ready for use.
>> + *
>> + * @id: Uclass ID
>> + * @dev: struct udevice * to hold the current device. Set to NULL when there
>> + * are no more devices.
>> + */
>> +#define uclass_foreach_dev_probe(id, dev) \
>> + for (uclass_first_device(id, &dev); dev; \
>> + uclass_next_device(&dev))
>
> Shouldn't we check the return value of uclass_first_device() and
> uclass_next_device()?
It's not necessary to check the return value of uclass_first_device(id,
&dev) because in any error case, dev is NULL, which is the loop output
condition. This is only for the first iteration.
For the other iteration, dev comes from uclass_next_device(&dev),
similarly to uclass_first_device(), in any error case dev is NULL.
Thanks
Patrice
>
>> +
>> #endif
>
> Regards,
> Bin
>
More information about the U-Boot
mailing list