diff mbox series

[u-boot-marvell,11/11] fdt_support: Add fdt_delete_disabled_nodes() and use in Turris MOX

Message ID 20211103020244.25428-12-kabel@kernel.org
State Superseded
Delegated to: Stefan Roese
Headers show
Series Some mvebu comphy + mox + fdt_support changes | expand

Commit Message

Marek Behún Nov. 3, 2021, 2:02 a.m. UTC
From: Marek Behún <marek.behun@nic.cz>

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 <marek.behun@nic.cz>
---
 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(-)

Comments

Stefan Roese Nov. 12, 2021, 1:31 p.m. UTC | #1
On 11/3/21 03:02, Marek Behún wrote:
> From: Marek Behún <marek.behun@nic.cz>
> 
> 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 <marek.behun@nic.cz>

Reviewed-by: Stefan Roese <sr@denx.de>

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
diff mbox series

Patch

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;