diff options
author | Tom Rini <trini@konsulko.com> | 2022-10-29 18:51:22 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-10-29 18:51:22 -0400 |
commit | 6f02819cceb19c334f1dbd6eccefb4ccfae319f9 (patch) | |
tree | ada26fe279934fbb18d69324010b3ce1f55ffb63 /drivers/core/uclass.c | |
parent | fb63362c63c7aeacb1dfde330ee8f692da7972f9 (diff) | |
parent | f21954750aa8ed445ab83998bb099e366136c428 (diff) |
Merge tag 'dm-pull-29oct22' of https://source.denx.de/u-boot/custodians/u-boot-dm
Fix pylibfdt warnings and use setuptools to build
Various minor changes to core dm and sandbox
Diffstat (limited to 'drivers/core/uclass.c')
-rw-r--r-- | drivers/core/uclass.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index b7d11bdd23a..1762a0796db 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -574,28 +574,34 @@ int uclass_get_device_by_phandle(enum uclass_id id, struct udevice *parent, } #endif -int uclass_first_device(enum uclass_id id, struct udevice **devp) +/* + * Starting from the given device @dev, return pointer to the first device in + * the uclass that probes successfully in @devp. + */ +static void _uclass_next_device(struct udevice *dev, struct udevice **devp) +{ + for (; dev; uclass_find_next_device(&dev)) { + if (!device_probe(dev)) + break; + } + *devp = dev; +} + +void uclass_first_device(enum uclass_id id, struct udevice **devp) { struct udevice *dev; int ret; - *devp = NULL; ret = uclass_find_first_device(id, &dev); - if (!dev) - return 0; - return uclass_get_device_tail(dev, ret, devp); + _uclass_next_device(dev, devp); } -int uclass_next_device(struct udevice **devp) +void uclass_next_device(struct udevice **devp) { struct udevice *dev = *devp; - int ret; - *devp = NULL; - ret = uclass_find_next_device(&dev); - if (!dev) - return 0; - return uclass_get_device_tail(dev, ret, devp); + uclass_find_next_device(&dev); + _uclass_next_device(dev, devp); } int uclass_first_device_err(enum uclass_id id, struct udevice **devp) |