|
|
@ -266,6 +266,17 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob, |
|
|
|
for (offset = fdt_first_subnode(blob, offset); |
|
|
|
for (offset = fdt_first_subnode(blob, offset); |
|
|
|
offset > 0; |
|
|
|
offset > 0; |
|
|
|
offset = fdt_next_subnode(blob, offset)) { |
|
|
|
offset = fdt_next_subnode(blob, offset)) { |
|
|
|
|
|
|
|
/* "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); |
|
|
|
|
|
|
|
if (err && !ret) |
|
|
|
|
|
|
|
ret = err; |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (pre_reloc_only && |
|
|
|
if (pre_reloc_only && |
|
|
|
!dm_fdt_pre_reloc(blob, offset)) |
|
|
|
!dm_fdt_pre_reloc(blob, offset)) |
|
|
|
continue; |
|
|
|
continue; |
|
|
|