On 11/3/21 03:02, Marek Behún wrote:
From: Marek Behún <[email protected]>

Move Turris MOX specific remove_disabled_nodes() to fdt_support with
name fdt_delete_disabled_nodes(), so that others can potentially use it.

Signed-off-by: Marek Behún <[email protected]>

Reviewed-by: Stefan Roese <[email protected]>

Thanks,
Stefan

---
  board/CZ.NIC/turris_mox/turris_mox.c | 20 +-------------------
  common/fdt_support.c                 | 23 +++++++++++++++++++++++
  include/fdt_support.h                |  2 ++
  3 files changed, 26 insertions(+), 19 deletions(-)

diff --git a/board/CZ.NIC/turris_mox/turris_mox.c 
b/board/CZ.NIC/turris_mox/turris_mox.c
index 809ce82d20..b61c5b1cb6 100644
--- a/board/CZ.NIC/turris_mox/turris_mox.c
+++ b/board/CZ.NIC/turris_mox/turris_mox.c
@@ -749,24 +749,6 @@ static int setup_switch(void *blob, int id)
        return 0;
  }
-static int remove_disabled_nodes(void *blob)
-{
-       while (1) {
-               int res, offset;
-
-               offset = fdt_node_offset_by_prop_value(blob, -1, "status",
-                                                      "disabled", 9);
-               if (offset < 0)
-                       break;
-
-               res = fdt_del_node(blob, offset);
-               if (res < 0)
-                       return res;
-       }
-
-       return 0;
-}
-
  int ft_board_setup(void *blob, struct bd_info *bd)
  {
        int res;
@@ -872,7 +854,7 @@ int ft_board_setup(void *blob, struct bd_info *bd)
        fdt_fixup_ethernet(blob);
/* Finally remove disabled nodes, as per Rob Herring's request. */
-       remove_disabled_nodes(blob);
+       fdt_delete_disabled_nodes(blob);
return 0;
  }
diff --git a/common/fdt_support.c b/common/fdt_support.c
index c2e16727e1..b2ba0825df 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -695,6 +695,29 @@ int fdt_shrink_to_minimum(void *blob, uint extrasize)
        return actualsize;
  }
+/**
+ * fdt_delete_disabled_nodes: Delete all nodes with status == "disabled"
+ *
+ * @blob: ptr to device tree
+ */
+int fdt_delete_disabled_nodes(void *blob)
+{
+       while (1) {
+               int ret, offset;
+
+               offset = fdt_node_offset_by_prop_value(blob, -1, "status",
+                                                      "disabled", 9);
+               if (offset < 0)
+                       break;
+
+               ret = fdt_del_node(blob, offset);
+               if (ret < 0)
+                       return ret;
+       }
+
+       return 0;
+}
+
  #ifdef CONFIG_PCI
  #define CONFIG_SYS_PCI_NR_INBOUND_WIN 4
diff --git a/include/fdt_support.h b/include/fdt_support.h
index d40586725b..8ec461af6c 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -228,6 +228,8 @@ void set_working_fdt_addr(ulong addr);
  int fdt_shrink_to_minimum(void *blob, uint extrasize);
  int fdt_increase_size(void *fdt, int add_len);
+int fdt_delete_disabled_nodes(void *blob);
+
  int fdt_fixup_nor_flash_size(void *blob);
struct node_info;


Viele Grüße,
Stefan Roese

--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: [email protected]

Reply via email to