dm: core: Move "/chosen" and "/firmware" node scan
authorPatrick Delaunay <patrick.delaunay@st.com>
Tue, 18 Feb 2020 14:43:46 +0000 (15:43 +0100)
committerSimon Glass <sjg@chromium.org>
Thu, 16 Apr 2020 14:07:57 +0000 (08:07 -0600)
commit0544ecbfe92e909dd8ac6795d4399a65d6727d9b
treed837720790d5c05e62b57966a5576c0f543c6987
parent67817b3b7a885b86b02b222675e0e29b1a2f25bf
dm: core: Move "/chosen" and "/firmware" node scan

Use the new function dm_scan_fdt_ofnode_path() to scan all the nodes
which aren't devices themselves but may contain some:
- "/chosen"
- "/clocks"
- "/firmware"

The patch removes the strcmp call in recursive function dm_scan_fdt_live()
and also corrects a conflict with the 2 applied patches in
the commit 1712ca21924b ("dm: core: Scan /firmware node by default")
and in the commit 747558d01457 ("dm: fdt: scan for devices under
/firmware too"): the subnodes of "/firmware" (optee for example)
are bound 2 times.

For example the dm tree command result on STM32MP1 is:

STM32MP> dm tree
 Class     Index  Probed  Driver                Name
 -----------------------------------------------------------
 root          0  [ + ]   root_driver           root_driver
 firmware      0  [   ]   psci                  |-- psci
 sysreset      0  [   ]   psci-sysreset         |   `-- psci-sysreset
 simple_bus    0  [ + ]   generic_simple_bus    |-- soc
...
 tee           0  [ + ]   optee                 |-- optee
...
 tee           1  [   ]   optee                 `-- optee

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/core/root.c
test/dm/test-fdt.c