]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
dm: core: Use device_foreach_child where possible
authorSean Anderson <seanga2@gmail.com>
Wed, 30 Mar 2022 16:26:40 +0000 (12:26 -0400)
committerSimon Glass <sjg@chromium.org>
Tue, 28 Jun 2022 02:09:51 +0000 (03:09 +0100)
We have some nice macros for iterating over devices in device.h, but they
are not used by the driver core. Convert all the users I could find.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
drivers/core/device-remove.c
drivers/core/device.c
drivers/core/devres.c
drivers/core/dump.c

index 73d2e9e4208180a72d3874d1e74c06526552c6dd..a86b9325dd8d68047c52c54446ef2be2ef8290d7 100644 (file)
@@ -29,7 +29,7 @@ int device_chld_unbind(struct udevice *dev, struct driver *drv)
 
        assert(dev);
 
-       list_for_each_entry_safe(pos, n, &dev->child_head, sibling_node) {
+       device_foreach_child_safe(pos, n, dev) {
                if (drv && (pos->driver != drv))
                        continue;
 
@@ -52,7 +52,7 @@ int device_chld_remove(struct udevice *dev, struct driver *drv,
 
        assert(dev);
 
-       list_for_each_entry_safe(pos, n, &dev->child_head, sibling_node) {
+       device_foreach_child_safe(pos, n, dev) {
                int ret;
 
                if (drv && (pos->driver != drv))
index 3d7fbfe0736a4d39cd4d6866286e4b57d78460cf..7f71570a940ab545384f3c145643513b18ec5dd9 100644 (file)
@@ -284,8 +284,7 @@ int device_reparent(struct udevice *dev, struct udevice *new_parent)
        assert(dev);
        assert(new_parent);
 
-       list_for_each_entry_safe(pos, n, &dev->parent->child_head,
-                                sibling_node) {
+       device_foreach_child_safe(pos, n, dev->parent) {
                if (pos->driver != dev->driver)
                        continue;
 
@@ -724,7 +723,7 @@ int device_get_child(const struct udevice *parent, int index,
 {
        struct udevice *dev;
 
-       list_for_each_entry(dev, &parent->child_head, sibling_node) {
+       device_foreach_child(dev, parent) {
                if (!index--)
                        return device_get_device_tail(dev, 0, devp);
        }
@@ -737,7 +736,7 @@ int device_get_child_count(const struct udevice *parent)
        struct udevice *dev;
        int count = 0;
 
-       list_for_each_entry(dev, &parent->child_head, sibling_node)
+       device_foreach_child(dev, parent)
                count++;
 
        return count;
@@ -748,7 +747,7 @@ int device_get_decendent_count(const struct udevice *parent)
        const struct udevice *dev;
        int count = 1;
 
-       list_for_each_entry(dev, &parent->child_head, sibling_node)
+       device_foreach_child(dev, parent)
                count += device_get_decendent_count(dev);
 
        return count;
@@ -761,7 +760,7 @@ int device_find_child_by_seq(const struct udevice *parent, int seq,
 
        *devp = NULL;
 
-       list_for_each_entry(dev, &parent->child_head, sibling_node) {
+       device_foreach_child(dev, parent) {
                if (dev->seq_ == seq) {
                        *devp = dev;
                        return 0;
@@ -790,7 +789,7 @@ int device_find_child_by_of_offset(const struct udevice *parent, int of_offset,
 
        *devp = NULL;
 
-       list_for_each_entry(dev, &parent->child_head, sibling_node) {
+       device_foreach_child(dev, parent) {
                if (dev_of_offset(dev) == of_offset) {
                        *devp = dev;
                        return 0;
@@ -819,7 +818,7 @@ static struct udevice *_device_find_global_by_ofnode(struct udevice *parent,
        if (ofnode_equal(dev_ofnode(parent), ofnode))
                return parent;
 
-       list_for_each_entry(dev, &parent->child_head, sibling_node) {
+       device_foreach_child(dev, parent) {
                found = _device_find_global_by_ofnode(dev, ofnode);
                if (found)
                        return found;
@@ -897,7 +896,7 @@ int device_find_first_inactive_child(const struct udevice *parent,
        struct udevice *dev;
 
        *devp = NULL;
-       list_for_each_entry(dev, &parent->child_head, sibling_node) {
+       device_foreach_child(dev, parent) {
                if (!device_active(dev) &&
                    device_get_uclass_id(dev) == uclass_id) {
                        *devp = dev;
@@ -915,7 +914,7 @@ int device_find_first_child_by_uclass(const struct udevice *parent,
        struct udevice *dev;
 
        *devp = NULL;
-       list_for_each_entry(dev, &parent->child_head, sibling_node) {
+       device_foreach_child(dev, parent) {
                if (device_get_uclass_id(dev) == uclass_id) {
                        *devp = dev;
                        return 0;
@@ -932,7 +931,7 @@ int device_find_child_by_namelen(const struct udevice *parent, const char *name,
 
        *devp = NULL;
 
-       list_for_each_entry(dev, &parent->child_head, sibling_node) {
+       device_foreach_child(dev, parent) {
                if (!strncmp(dev->name, name, len) &&
                    strlen(dev->name) == len) {
                        *devp = dev;
index 313ddc7089c967288887c53a2280a3d3e7caf4e0..78914bdf7f210c15e7eb75453e0be95e92812505 100644 (file)
@@ -232,7 +232,7 @@ static void dump_resources(struct udevice *dev, int depth)
                       (unsigned long)dr->size, dr->name,
                       devres_phase_name[dr->phase]);
 
-       list_for_each_entry(child, &dev->child_head, sibling_node)
+       device_foreach_child(child, dev)
                dump_resources(child, depth + 1);
 }
 
index f2f9cacc56c4d8af84645a849cc32800acede786..fe97dca954d3cc1c7a162dc029cecbeb110af4b2 100644 (file)
@@ -39,7 +39,7 @@ static void show_devices(struct udevice *dev, int depth, int last_flag)
 
        printf("%s\n", dev->name);
 
-       list_for_each_entry(child, &dev->child_head, sibling_node) {
+       device_foreach_child(child, dev) {
                is_last = list_is_last(&child->sibling_node, &dev->child_head);
                show_devices(child, depth + 1, (last_flag << 1) | is_last);
        }