cmd: List all uclass devices regardless of probe error

There are a few commands that iterate uclass with
uclass_first_device/uclass_next_device or the _err variant.

Use the _check class iterator variant to get devices that fail to probe
as well, and print the status.

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Michal Suchanek
2022-10-12 21:57:58 +02:00
committed by Simon Glass
parent 9244645f92
commit 8676ae36ae
5 changed files with 45 additions and 37 deletions

View File

@@ -64,20 +64,23 @@ static int do_demo_light(struct cmd_tbl *cmdtp, int flag, int argc,
int do_demo_list(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
struct udevice *dev;
int i, ret;
int i, ret, err = 0;
puts("Demo uclass entries:\n");
for (i = 0, ret = uclass_first_device(UCLASS_DEMO, &dev);
for (i = 0, ret = uclass_first_device_check(UCLASS_DEMO, &dev);
dev;
ret = uclass_next_device(&dev)) {
printf("entry %d - instance %08x, ops %08x, plat %08x\n",
ret = uclass_next_device_check(&dev)) {
printf("entry %d - instance %08x, ops %08x, plat %08x, status %i\n",
i++, (uint)map_to_sysmem(dev),
(uint)map_to_sysmem(dev->driver->ops),
(uint)map_to_sysmem(dev_get_plat(dev)));
(uint)map_to_sysmem(dev_get_plat(dev)),
ret);
if (ret)
err = ret;
}
return cmd_process_error(cmdtp, ret);
return cmd_process_error(cmdtp, err);
}
static struct cmd_tbl demo_commands[] = {