Re: [PATCH v6 02/20] dm: treewide: Do not opencode uclass_probe_all()

2022-10-17 Thread Simon Glass
We already have a function for probing all devices of a specific class,
use it.

Signed-off-by: Michal Suchanek 
Reviewed-by: Simon Glass 
---
 drivers/cpu/cpu-uclass.c   | 20 
 drivers/virtio/virtio-uclass.c | 15 +--
 test/dm/core.c | 17 +++--
 test/test-main.c   | 11 +--
 4 files changed, 9 insertions(+), 54 deletions(-)

Applied to u-boot-dm, thanks!


[PATCH v6 02/20] dm: treewide: Do not opencode uclass_probe_all()

2022-10-12 Thread Michal Suchanek
We already have a function for probing all devices of a specific class,
use it.

Signed-off-by: Michal Suchanek 
Reviewed-by: Simon Glass 
---
 drivers/cpu/cpu-uclass.c   | 20 
 drivers/virtio/virtio-uclass.c | 15 +--
 test/dm/core.c | 17 +++--
 test/test-main.c   | 11 +--
 4 files changed, 9 insertions(+), 54 deletions(-)

diff --git a/drivers/cpu/cpu-uclass.c b/drivers/cpu/cpu-uclass.c
index 71e5900d70..a754832526 100644
--- a/drivers/cpu/cpu-uclass.c
+++ b/drivers/cpu/cpu-uclass.c
@@ -20,25 +20,13 @@ DECLARE_GLOBAL_DATA_PTR;
 
 int cpu_probe_all(void)
 {
-   struct udevice *cpu;
-   int ret;
+   int ret = uclass_probe_all(UCLASS_CPU);
 
-   ret = uclass_first_device(UCLASS_CPU, );
if (ret) {
-   debug("%s: No CPU found (err = %d)\n", __func__, ret);
-   return ret;
-   }
-
-   while (cpu) {
-   ret = uclass_next_device();
-   if (ret) {
-   debug("%s: Error while probing CPU (err = %d)\n",
- __func__, ret);
-   return ret;
-   }
+   debug("%s: Error while probing CPUs (err = %d %s)\n",
+ __func__, ret, errno_str(ret));
}
-
-   return 0;
+   return ret;
 }
 
 int cpu_is_current(struct udevice *cpu)
diff --git a/drivers/virtio/virtio-uclass.c b/drivers/virtio/virtio-uclass.c
index 9e2d0e06a1..da4f2f26a6 100644
--- a/drivers/virtio/virtio-uclass.c
+++ b/drivers/virtio/virtio-uclass.c
@@ -183,21 +183,8 @@ void virtio_driver_features_init(struct virtio_dev_priv 
*priv,
 
 int virtio_init(void)
 {
-   struct udevice *bus;
-   int ret;
-
/* Enumerate all known virtio devices */
-   ret = uclass_first_device(UCLASS_VIRTIO, );
-   if (ret)
-   return ret;
-
-   while (bus) {
-   ret = uclass_next_device();
-   if (ret)
-   break;
-   }
-
-   return ret;
+   return uclass_probe_all(UCLASS_VIRTIO);
 }
 
 static int virtio_uclass_pre_probe(struct udevice *udev)
diff --git a/test/dm/core.c b/test/dm/core.c
index fd4d756972..84eb76ed5f 100644
--- a/test/dm/core.c
+++ b/test/dm/core.c
@@ -512,23 +512,15 @@ static int dm_test_leak(struct unit_test_state *uts)
int i;
 
for (i = 0; i < 2; i++) {
-   struct udevice *dev;
int ret;
-   int id;
 
dm_leak_check_start(uts);
 
ut_assertok(dm_scan_plat(false));
ut_assertok(dm_scan_fdt(false));
 
-   /* Scanning the uclass is enough to probe all the devices */
-   for (id = UCLASS_ROOT; id < UCLASS_COUNT; id++) {
-   for (ret = uclass_first_device(UCLASS_TEST, );
-dev;
-ret = uclass_next_device())
-   ;
-   ut_assertok(ret);
-   }
+   ret = uclass_probe_all(UCLASS_TEST);
+   ut_assertok(ret);
 
ut_assertok(dm_leak_check_end(uts));
}
@@ -653,10 +645,7 @@ static int dm_test_children(struct unit_test_state *uts)
ut_asserteq(2 + NODE_COUNT, dm_testdrv_op_count[DM_TEST_OP_PROBE]);
 
/* Probe everything */
-   for (ret = uclass_first_device(UCLASS_TEST, );
-dev;
-ret = uclass_next_device())
-   ;
+   ret = uclass_probe_all(UCLASS_TEST);
ut_assertok(ret);
 
ut_asserteq(total, dm_testdrv_op_count[DM_TEST_OP_PROBE]);
diff --git a/test/test-main.c b/test/test-main.c
index d74df297c4..a98a77d68f 100644
--- a/test/test-main.c
+++ b/test/test-main.c
@@ -165,16 +165,7 @@ static int dm_test_post_run(struct unit_test_state *uts)
 /* Ensure all the test devices are probed */
 static int do_autoprobe(struct unit_test_state *uts)
 {
-   struct udevice *dev;
-   int ret;
-
-   /* Scanning the uclass is enough to probe all the devices */
-   for (ret = uclass_first_device(UCLASS_TEST, );
-dev;
-ret = uclass_next_device())
-   ;
-
-   return ret;
+   return uclass_probe_all(UCLASS_TEST);
 }
 
 /*
-- 
2.37.3