mirror of
https://xff.cz/git/u-boot/
synced 2025-09-22 19:12:18 +02:00
dm: core: Fix uclass_probe_all to really probe all devices
uclass_probe_all uses uclass_first_device/uclass_next_device assigning
the return value.
The interface for getting meaningful error is
uclass_first_device_check/uclass_next_device_check, use it.
Also do not stop iteration when an error is encountered. Probing all
devices includes those that happen to be after a failing device in the
uclass order.
Fixes: a59153dfeb
("dm: core: add function uclass_probe_all() to probe all devices")
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Simon Glass
parent
e21ec17d42
commit
dfecd63192
@@ -799,20 +799,18 @@ int uclass_pre_remove_device(struct udevice *dev)
|
||||
int uclass_probe_all(enum uclass_id id)
|
||||
{
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
int ret, err;
|
||||
|
||||
ret = uclass_first_device(id, &dev);
|
||||
if (ret || !dev)
|
||||
return ret;
|
||||
err = uclass_first_device_check(id, &dev);
|
||||
|
||||
/* Scanning uclass to probe all devices */
|
||||
while (dev) {
|
||||
ret = uclass_next_device(&dev);
|
||||
ret = uclass_next_device_check(&dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
err = ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return err;
|
||||
}
|
||||
|
||||
int uclass_id_count(enum uclass_id id)
|
||||
|
Reference in New Issue
Block a user