From: Thomas Haemmerle <[email protected]>

The sub-nodes of "/firmware" are not populated, since it has no
"compatible" property. Copy the behavior of Linux and call
of_platform_populate() on the "/firmware" node to probe firmware
drivers.

Signed-off-by: Thomas Haemmerle <[email protected]>
Signed-off-by: Michael Tretter <[email protected]>
---
 drivers/of/base.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index b082f0c656..85c7953370 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1979,7 +1979,7 @@ const struct of_device_id of_default_bus_match_table[] = {
 
 int of_probe(void)
 {
-       struct device_node *memory;
+       struct device_node *memory, *firmware;
 
        if(!root_node)
                return -ENODEV;
@@ -1996,6 +1996,10 @@ int of_probe(void)
        if (memory)
                of_add_memory(memory, false);
 
+       firmware = of_find_node_by_path("/firmware");
+       if (firmware)
+               of_platform_populate(firmware, NULL, NULL);
+
        of_clk_init(root_node, NULL);
        of_platform_populate(root_node, of_default_bus_match_table, NULL);
 
-- 
2.20.1


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to