mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 07:31:15 +00:00
dm: core: Use device_foreach_child where possible
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>
This commit is contained in:
parent
8b52f237f0
commit
501a9a7ed8
4 changed files with 14 additions and 15 deletions
|
@ -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))
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue