[PATCH v2 2/2] uclass: Cleanup uclass_find_next_device
Andrew Goodbody
andrew.goodbody at linaro.org
Tue Jul 15 11:23:14 CEST 2025
uclass_find_next_device always returns 0, so instead make it a void and
update calling sites.
Signed-off-by: Andrew Goodbody <andrew.goodbody at linaro.org>
---
board/emulation/qemu-ppce500/qemu-ppce500.c | 4 ++--
boot/bootdev-uclass.c | 2 +-
cmd/regulator.c | 4 ++--
drivers/core/uclass.c | 16 +++++-----------
drivers/power/regulator/regulator-uclass.c | 10 ++++++----
drivers/remoteproc/rproc-uclass.c | 6 ++++--
include/dm/uclass-internal.h | 4 +---
test/dm/core.c | 28 ++++++++++++++--------------
8 files changed, 35 insertions(+), 39 deletions(-)
diff --git a/board/emulation/qemu-ppce500/qemu-ppce500.c b/board/emulation/qemu-ppce500/qemu-ppce500.c
index 40d295dbf06..58de4a05296 100644
--- a/board/emulation/qemu-ppce500/qemu-ppce500.c
+++ b/board/emulation/qemu-ppce500/qemu-ppce500.c
@@ -170,9 +170,9 @@ int misc_init_r(void)
* Detect the presence of the platform bus node, and
* create a virtual memory mapping for it.
*/
- for (ret = uclass_find_first_device(UCLASS_SIMPLE_BUS, &dev);
+ for (uclass_find_first_device(UCLASS_SIMPLE_BUS, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
if (device_is_compatible(dev, "qemu,platform")) {
struct simple_bus_plat *plat = dev_get_uclass_plat(dev);
diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c
index 3791ebfcb42..6718c482e52 100644
--- a/boot/bootdev-uclass.c
+++ b/boot/bootdev-uclass.c
@@ -216,7 +216,7 @@ void bootdev_list(bool probe)
if (probe)
ret = uclass_next_device_check(&dev);
else
- ret = uclass_find_next_device(&dev);
+ uclass_find_next_device(&dev);
}
printf("--- ------ ------ -------- ------------------\n");
printf("(%d bootdev%s)\n", i, i != 1 ? "s" : "");
diff --git a/cmd/regulator.c b/cmd/regulator.c
index da298090bb7..db843283662 100644
--- a/cmd/regulator.c
+++ b/cmd/regulator.c
@@ -97,9 +97,9 @@ static int do_list(struct cmd_tbl *cmdtp, int flag, int argc,
"Parent");
for (ret = uclass_find_first_device(UCLASS_REGULATOR, &dev); dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
if (ret)
- continue;
+ break;
uc_pdata = dev_get_uclass_plat(dev);
printf("| %-*.*s| %-*.*s| %s\n",
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c
index ce5e61bbaa6..5365ac68f9e 100644
--- a/drivers/core/uclass.c
+++ b/drivers/core/uclass.c
@@ -261,17 +261,14 @@ int uclass_find_first_device(enum uclass_id id, struct udevice **devp)
return 0;
}
-int uclass_find_next_device(struct udevice **devp)
+void uclass_find_next_device(struct udevice **devp)
{
struct udevice *dev = *devp;
*devp = NULL;
- if (list_is_last(&dev->uclass_node, &dev->uclass->dev_head))
- return 0;
-
- *devp = list_entry(dev->uclass_node.next, struct udevice, uclass_node);
-
- return 0;
+ if (!list_is_last(&dev->uclass_node, &dev->uclass->dev_head))
+ *devp = list_entry(dev->uclass_node.next, struct udevice,
+ uclass_node);
}
int uclass_find_device_by_namelen(enum uclass_id id, const char *name, int len,
@@ -675,11 +672,8 @@ int uclass_first_device_check(enum uclass_id id, struct udevice **devp)
int uclass_next_device_check(struct udevice **devp)
{
- int ret;
+ uclass_find_next_device(devp);
- ret = uclass_find_next_device(devp);
- if (ret)
- return ret;
if (!*devp)
return 0;
diff --git a/drivers/power/regulator/regulator-uclass.c b/drivers/power/regulator/regulator-uclass.c
index 09567eb9dbb..eac025c9c02 100644
--- a/drivers/power/regulator/regulator-uclass.c
+++ b/drivers/power/regulator/regulator-uclass.c
@@ -261,10 +261,10 @@ int regulator_get_by_platname(const char *plat_name, struct udevice **devp)
*devp = NULL;
for (ret = uclass_find_first_device(UCLASS_REGULATOR, &dev); dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
if (ret) {
dev_dbg(dev, "ret=%d\n", ret);
- continue;
+ break;
}
uc_pdata = dev_get_uclass_plat(dev);
@@ -411,8 +411,10 @@ static bool regulator_name_is_unique(struct udevice *check_dev,
int len;
for (ret = uclass_find_first_device(UCLASS_REGULATOR, &dev); dev;
- ret = uclass_find_next_device(&dev)) {
- if (ret || dev == check_dev)
+ uclass_find_next_device(&dev)) {
+ if (ret)
+ break;
+ if (dev == check_dev)
continue;
uc_pdata = dev_get_uclass_plat(dev);
diff --git a/drivers/remoteproc/rproc-uclass.c b/drivers/remoteproc/rproc-uclass.c
index 3233ff80419..7916cb27e3d 100644
--- a/drivers/remoteproc/rproc-uclass.c
+++ b/drivers/remoteproc/rproc-uclass.c
@@ -56,8 +56,10 @@ static int for_each_remoteproc_device(int (*fn) (struct udevice *dev,
int ret;
for (ret = uclass_find_first_device(UCLASS_REMOTEPROC, &dev); dev;
- ret = uclass_find_next_device(&dev)) {
- if (ret || dev == skip_dev)
+ uclass_find_next_device(&dev)) {
+ if (ret)
+ return ret;
+ if (dev == skip_dev)
continue;
uc_pdata = dev_get_uclass_plat(dev);
ret = fn(dev, uc_pdata, data);
diff --git a/include/dm/uclass-internal.h b/include/dm/uclass-internal.h
index 3ddcdd21439..9cb3f090271 100644
--- a/include/dm/uclass-internal.h
+++ b/include/dm/uclass-internal.h
@@ -149,10 +149,8 @@ int uclass_find_first_device(enum uclass_id id, struct udevice **devp);
*
* The device is not prepared for use - this is an internal function.
* The function uclass_get_device_tail() can be used to probe the device.
- *
- * Return: 0 if OK (found or not found), -ve on error
*/
-int uclass_find_next_device(struct udevice **devp);
+void uclass_find_next_device(struct udevice **devp);
/**
* uclass_find_device_by_namelen() - Find uclass device based on ID and name
diff --git a/test/dm/core.c b/test/dm/core.c
index 959b834576f..201daee6836 100644
--- a/test/dm/core.c
+++ b/test/dm/core.c
@@ -737,7 +737,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -746,7 +746,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -756,7 +756,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -765,7 +765,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -775,7 +775,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -784,7 +784,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -794,7 +794,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -803,7 +803,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -812,7 +812,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -820,7 +820,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
ut_assertok(device_remove(top[2], DM_REMOVE_NORMAL));
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -829,7 +829,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -838,7 +838,7 @@ static int dm_test_device_reparent(struct unit_test_state *uts)
/* try to get devices */
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -1092,7 +1092,7 @@ static int dm_test_uclass_devices_find(struct unit_test_state *uts)
for (ret = uclass_find_first_device(UCLASS_TEST, &dev);
dev;
- ret = uclass_find_next_device(&dev)) {
+ uclass_find_next_device(&dev)) {
ut_assert(!ret);
ut_assertnonnull(dev);
}
@@ -1123,7 +1123,7 @@ static int dm_test_uclass_devices_find_by_name(struct unit_test_state *uts)
*/
for (ret = uclass_find_first_device(UCLASS_TEST_FDT, &testdev);
testdev;
- ret = uclass_find_next_device(&testdev)) {
+ uclass_find_next_device(&testdev)) {
ut_assertok(ret);
ut_assertnonnull(testdev);
--
2.39.5
More information about the U-Boot
mailing list