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

Stefan Roese sr at denx.de
Fri Nov 12 13:42:29 CET 2021


On 11/3/21 03:02, Marek Behún wrote:
> From: Marek Behún <marek.behun at 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 at 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 at 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

-- 
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: sr at denx.de


More information about the U-Boot mailing list