diff mbox series

[u-boot-marvell,03/11] fdt_support: Remove fdt_alloc_phandle() in favor of fdt_generate_phandle()

Message ID 20211103020244.25428-4-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>

Commit f0921f5098d ("fdt: Sync up to the latest libfdt") introduced
fdt_generate_phandle() in libfdt, making fdt_alloc_phandle() obsolete in
fdt_support.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
---
 board/freescale/lx2160a/eth_lx2160aqds.c |  8 +++++--
 board/freescale/lx2160a/eth_lx2162aqds.c |  8 +++++--
 common/fdt_support.c                     | 28 +++++++-----------------
 include/fdt_support.h                    |  1 -
 4 files changed, 20 insertions(+), 25 deletions(-)

Comments

Stefan Roese Nov. 12, 2021, 12:42 p.m. UTC | #1
On 11/3/21 03:02, Marek Behún wrote:
> From: Marek Behún <marek.behun@nic.cz>
> 
> Commit f0921f5098d ("fdt: Sync up to the latest libfdt") introduced
> fdt_generate_phandle() in libfdt, making fdt_alloc_phandle() obsolete in
> fdt_support.
> 
> Signed-off-by: Marek Behún <marek.behun@nic.cz>
> ---
>   board/freescale/lx2160a/eth_lx2160aqds.c |  8 +++++--
>   board/freescale/lx2160a/eth_lx2162aqds.c |  8 +++++--
>   common/fdt_support.c                     | 28 +++++++-----------------
>   include/fdt_support.h                    |  1 -
>   4 files changed, 20 insertions(+), 25 deletions(-)

Could you please add the maintainers for the boards, if there are such
changes in the board specific code? Otherwise such changes just "slip"
by and might not be tested on these platforms.

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

Thanks,
Stefan


> diff --git a/board/freescale/lx2160a/eth_lx2160aqds.c b/board/freescale/lx2160a/eth_lx2160aqds.c
> index a2b6442b54..1819b27561 100644
> --- a/board/freescale/lx2160a/eth_lx2160aqds.c
> +++ b/board/freescale/lx2160a/eth_lx2160aqds.c
> @@ -775,10 +775,11 @@ int fdt_fixup_board_phy(void *fdt)
>   	int fpga_offset, offset, subnodeoffset;
>   	struct mii_dev *mii_dev;
>   	struct list_head *mii_devs, *entry;
> -	int ret, dpmac_id, phandle, i;
> +	int ret, dpmac_id, i;
>   	struct phy_device *phy_dev;
>   	char ethname[ETH_NAME_LEN];
>   	phy_interface_t	phy_iface;
> +	uint32_t phandle;
>   
>   	ret = 0;
>   	/* we know FPGA is connected to i2c0, therefore search path directly,
> @@ -794,7 +795,10 @@ int fdt_fixup_board_phy(void *fdt)
>   		return fpga_offset;
>   	}
>   
> -	phandle = fdt_alloc_phandle(fdt);
> +	ret = fdt_generate_phandle(fdt, &phandle);
> +	if (ret < 0)
> +		return ret;
> +
>   	mii_devs = mdio_get_list_head();
>   
>   	list_for_each(entry, mii_devs) {
> diff --git a/board/freescale/lx2160a/eth_lx2162aqds.c b/board/freescale/lx2160a/eth_lx2162aqds.c
> index 3b04dea39c..ac6218ebe4 100644
> --- a/board/freescale/lx2160a/eth_lx2162aqds.c
> +++ b/board/freescale/lx2160a/eth_lx2162aqds.c
> @@ -787,10 +787,11 @@ int fdt_fixup_board_phy(void *fdt)
>   	int fpga_offset, offset, subnodeoffset;
>   	struct mii_dev *mii_dev;
>   	struct list_head *mii_devs, *entry;
> -	int ret, dpmac_id, phandle, i;
> +	int ret, dpmac_id, i;
>   	struct phy_device *phy_dev;
>   	char ethname[ETH_NAME_LEN];
>   	phy_interface_t	phy_iface;
> +	uint32_t phandle;
>   
>   	ret = 0;
>   	/* we know FPGA is connected to i2c0, therefore search path directly,
> @@ -806,7 +807,10 @@ int fdt_fixup_board_phy(void *fdt)
>   		return fpga_offset;
>   	}
>   
> -	phandle = fdt_alloc_phandle(fdt);
> +	ret = fdt_generate_phandle(fdt, &phandle);
> +	if (ret < 0)
> +		return ret;
> +
>   	mii_devs = mdio_get_list_head();
>   
>   	list_for_each(entry, mii_devs) {
> diff --git a/common/fdt_support.c b/common/fdt_support.c
> index 8992ac5d3f..be03a87d42 100644
> --- a/common/fdt_support.c
> +++ b/common/fdt_support.c
> @@ -1463,24 +1463,6 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
>   	return -FDT_ERR_NOTFOUND;
>   }
>   
> -/**
> - * fdt_alloc_phandle: Return next free phandle value
> - *
> - * @blob: ptr to device tree
> - */
> -int fdt_alloc_phandle(void *blob)
> -{
> -	int offset;
> -	uint32_t phandle = 0;
> -
> -	for (offset = fdt_next_node(blob, -1, NULL); offset >= 0;
> -	     offset = fdt_next_node(blob, offset, NULL)) {
> -		phandle = max(phandle, fdt_get_phandle(blob, offset));
> -	}
> -
> -	return phandle + 1;
> -}
> -
>   /*
>    * fdt_set_phandle: Create a phandle property for the given node
>    *
> @@ -1530,13 +1512,19 @@ int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle)
>   unsigned int fdt_create_phandle(void *fdt, int nodeoffset)
>   {
>   	/* see if there is a phandle already */
> -	int phandle = fdt_get_phandle(fdt, nodeoffset);
> +	uint32_t phandle = fdt_get_phandle(fdt, nodeoffset);
>   
>   	/* if we got 0, means no phandle so create one */
>   	if (phandle == 0) {
>   		int ret;
>   
> -		phandle = fdt_alloc_phandle(fdt);
> +		ret = fdt_generate_phandle(fdt, &phandle);
> +		if (ret < 0) {
> +			printf("Can't generate phandle: %s\n",
> +			       fdt_strerror(ret));
> +			return 0;
> +		}
> +
>   		ret = fdt_set_phandle(fdt, nodeoffset, phandle);
>   		if (ret < 0) {
>   			printf("Can't set phandle %u: %s\n", phandle,
> diff --git a/include/fdt_support.h b/include/fdt_support.h
> index 88d129c803..90f5a4c28c 100644
> --- a/include/fdt_support.h
> +++ b/include/fdt_support.h
> @@ -285,7 +285,6 @@ int fdt_get_dma_range(const void *blob, int node_offset, phys_addr_t *cpu,
>   
>   int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
>   					phys_addr_t compat_off);
> -int fdt_alloc_phandle(void *blob);
>   int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle);
>   unsigned int fdt_create_phandle(void *fdt, int nodeoffset);
>   int fdt_add_edid(void *blob, const char *compat, unsigned char *buf);
> 

Viele Grüße,
Stefan Roese
Marek Behún Nov. 12, 2021, 5:26 p.m. UTC | #2
On Fri, 12 Nov 2021 13:42:29 +0100
Stefan Roese <sr@denx.de> wrote:

> On 11/3/21 03:02, Marek Behún wrote:
> > From: Marek Behún <marek.behun@nic.cz>
> > 
> > Commit f0921f5098d ("fdt: Sync up to the latest libfdt") introduced
> > fdt_generate_phandle() in libfdt, making fdt_alloc_phandle() obsolete in
> > fdt_support.
> > 
> > Signed-off-by: Marek Behún <marek.behun@nic.cz>
> > ---
> >   board/freescale/lx2160a/eth_lx2160aqds.c |  8 +++++--
> >   board/freescale/lx2160a/eth_lx2162aqds.c |  8 +++++--
> >   common/fdt_support.c                     | 28 +++++++-----------------
> >   include/fdt_support.h                    |  1 -
> >   4 files changed, 20 insertions(+), 25 deletions(-)  
> 
> Could you please add the maintainers for the boards, if there are such
> changes in the board specific code? Otherwise such changes just "slip"
> by and might not be tested on these platforms.
> 
> Reviewed-by: Stefan Roese <sr@denx.de>

OK. Should I resend this series? Or just send them reply to this patch?

Marek
diff mbox series

Patch

diff --git a/board/freescale/lx2160a/eth_lx2160aqds.c b/board/freescale/lx2160a/eth_lx2160aqds.c
index a2b6442b54..1819b27561 100644
--- a/board/freescale/lx2160a/eth_lx2160aqds.c
+++ b/board/freescale/lx2160a/eth_lx2160aqds.c
@@ -775,10 +775,11 @@  int fdt_fixup_board_phy(void *fdt)
 	int fpga_offset, offset, subnodeoffset;
 	struct mii_dev *mii_dev;
 	struct list_head *mii_devs, *entry;
-	int ret, dpmac_id, phandle, i;
+	int ret, dpmac_id, i;
 	struct phy_device *phy_dev;
 	char ethname[ETH_NAME_LEN];
 	phy_interface_t	phy_iface;
+	uint32_t phandle;
 
 	ret = 0;
 	/* we know FPGA is connected to i2c0, therefore search path directly,
@@ -794,7 +795,10 @@  int fdt_fixup_board_phy(void *fdt)
 		return fpga_offset;
 	}
 
-	phandle = fdt_alloc_phandle(fdt);
+	ret = fdt_generate_phandle(fdt, &phandle);
+	if (ret < 0)
+		return ret;
+
 	mii_devs = mdio_get_list_head();
 
 	list_for_each(entry, mii_devs) {
diff --git a/board/freescale/lx2160a/eth_lx2162aqds.c b/board/freescale/lx2160a/eth_lx2162aqds.c
index 3b04dea39c..ac6218ebe4 100644
--- a/board/freescale/lx2160a/eth_lx2162aqds.c
+++ b/board/freescale/lx2160a/eth_lx2162aqds.c
@@ -787,10 +787,11 @@  int fdt_fixup_board_phy(void *fdt)
 	int fpga_offset, offset, subnodeoffset;
 	struct mii_dev *mii_dev;
 	struct list_head *mii_devs, *entry;
-	int ret, dpmac_id, phandle, i;
+	int ret, dpmac_id, i;
 	struct phy_device *phy_dev;
 	char ethname[ETH_NAME_LEN];
 	phy_interface_t	phy_iface;
+	uint32_t phandle;
 
 	ret = 0;
 	/* we know FPGA is connected to i2c0, therefore search path directly,
@@ -806,7 +807,10 @@  int fdt_fixup_board_phy(void *fdt)
 		return fpga_offset;
 	}
 
-	phandle = fdt_alloc_phandle(fdt);
+	ret = fdt_generate_phandle(fdt, &phandle);
+	if (ret < 0)
+		return ret;
+
 	mii_devs = mdio_get_list_head();
 
 	list_for_each(entry, mii_devs) {
diff --git a/common/fdt_support.c b/common/fdt_support.c
index 8992ac5d3f..be03a87d42 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -1463,24 +1463,6 @@  int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
 	return -FDT_ERR_NOTFOUND;
 }
 
-/**
- * fdt_alloc_phandle: Return next free phandle value
- *
- * @blob: ptr to device tree
- */
-int fdt_alloc_phandle(void *blob)
-{
-	int offset;
-	uint32_t phandle = 0;
-
-	for (offset = fdt_next_node(blob, -1, NULL); offset >= 0;
-	     offset = fdt_next_node(blob, offset, NULL)) {
-		phandle = max(phandle, fdt_get_phandle(blob, offset));
-	}
-
-	return phandle + 1;
-}
-
 /*
  * fdt_set_phandle: Create a phandle property for the given node
  *
@@ -1530,13 +1512,19 @@  int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle)
 unsigned int fdt_create_phandle(void *fdt, int nodeoffset)
 {
 	/* see if there is a phandle already */
-	int phandle = fdt_get_phandle(fdt, nodeoffset);
+	uint32_t phandle = fdt_get_phandle(fdt, nodeoffset);
 
 	/* if we got 0, means no phandle so create one */
 	if (phandle == 0) {
 		int ret;
 
-		phandle = fdt_alloc_phandle(fdt);
+		ret = fdt_generate_phandle(fdt, &phandle);
+		if (ret < 0) {
+			printf("Can't generate phandle: %s\n",
+			       fdt_strerror(ret));
+			return 0;
+		}
+
 		ret = fdt_set_phandle(fdt, nodeoffset, phandle);
 		if (ret < 0) {
 			printf("Can't set phandle %u: %s\n", phandle,
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 88d129c803..90f5a4c28c 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -285,7 +285,6 @@  int fdt_get_dma_range(const void *blob, int node_offset, phys_addr_t *cpu,
 
 int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
 					phys_addr_t compat_off);
-int fdt_alloc_phandle(void *blob);
 int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle);
 unsigned int fdt_create_phandle(void *fdt, int nodeoffset);
 int fdt_add_edid(void *blob, const char *compat, unsigned char *buf);