Subnodes under "/firmware" node are scanned twice in
dm_scan_fdt_node() and dm_extended_scan_fdt().
This patch removes the scanning in dm_scan_fdt_node() to
avoid double scanning.

This reverts commit 747558d014577526bf2e8d9fe9ca748fdbf75d8a.

Signed-off-by: Thirupathaiah Annapureddy <thir...@linux.microsoft.com>
---
 drivers/core/root.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/core/root.c b/drivers/core/root.c
index e85643819e..cb695e933a 100644
--- a/drivers/core/root.c
+++ b/drivers/core/root.c
@@ -254,15 +254,9 @@ static int dm_scan_fdt_node(struct udevice *parent, const 
void *blob,
        for (offset = fdt_first_subnode(blob, offset);
             offset > 0;
             offset = fdt_next_subnode(blob, offset)) {
-               const char *node_name = fdt_get_name(blob, offset, NULL);
-
-               /*
-                * The "chosen" and "firmware" nodes aren't devices
-                * themselves but may contain some:
-                */
-               if (!strcmp(node_name, "chosen") ||
-                   !strcmp(node_name, "firmware")) {
-                       pr_debug("parsing subnodes of \"%s\"\n", node_name);
+               /* "chosen" node isn't a device itself but may contain some: */
+               if (!strcmp(fdt_get_name(blob, offset, NULL), "chosen")) {
+                       pr_debug("parsing subnodes of \"chosen\"\n");
 
                        err = dm_scan_fdt_node(parent, blob, offset,
                                               pre_reloc_only);
@@ -279,7 +273,8 @@ static int dm_scan_fdt_node(struct udevice *parent, const 
void *blob,
                                     pre_reloc_only);
                if (err && !ret) {
                        ret = err;
-                       debug("%s: ret=%d\n", node_name, ret);
+                       debug("%s: ret=%d\n", fdt_get_name(blob, offset, NULL),
+                             ret);
                }
        }
 
-- 
2.24.1

Reply via email to