[PATCH u-boot-marvell 04/19] net: mvneta: Remember fixed link instead of PHY address in priv data

Stefan Roese sr at denx.de
Mon May 2 08:48:41 CEST 2022


On 27.04.22 12:41, Marek Behún wrote:
> From: Marek Behún <marek.behun at nic.cz>
> 
> We don't need to remember PHY address anymore, because since using DM
> MDIO for connecting PHY, the address is parsed by mdio-uclass from
> the ofnode.
> 
> But the driver uses a special value of the address to signal fixed link
> usage.
> 
> Drop phyaddr add fixed_link in driver private structure. This simplifies
> code a little.
> 
> Signed-off-by: Marek Behún <marek.behun at nic.cz>

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

Thanks,
Stefan


> ---
>   drivers/net/mvneta.c | 23 +++++------------------
>   1 file changed, 5 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c
> index 24a491dcde..83e9629138 100644
> --- a/drivers/net/mvneta.c
> +++ b/drivers/net/mvneta.c
> @@ -277,12 +277,12 @@ struct mvneta_port {
>   	u16 rx_ring_size;
>   
>   	phy_interface_t phy_interface;
> +	bool fixed_link;
>   	unsigned int link;
>   	unsigned int duplex;
>   	unsigned int speed;
>   
>   	int init;
> -	int phyaddr;
>   	struct phy_device *phydev;
>   #if CONFIG_IS_ENABLED(DM_GPIO)
>   	struct gpio_desc phy_reset_gpio;
> @@ -576,13 +576,6 @@ static void mvneta_rxq_buf_size_set(struct mvneta_port *pp,
>   	mvreg_write(pp, MVNETA_RXQ_SIZE_REG(rxq->id), val);
>   }
>   
> -static int mvneta_port_is_fixed_link(struct mvneta_port *pp)
> -{
> -	/* phy_addr is set to invalid value for fixed link */
> -	return pp->phyaddr > PHY_MAX_ADDR;
> -}
> -
> -
>   /* Start the Ethernet port RX and TX activity */
>   static void mvneta_port_up(struct mvneta_port *pp)
>   {
> @@ -834,7 +827,7 @@ static void mvneta_defaults_set(struct mvneta_port *pp)
>   	mvreg_write(pp, MVNETA_SDMA_CONFIG, val);
>   
>   	/* Enable PHY polling in hardware if not in fixed-link mode */
> -	if (!mvneta_port_is_fixed_link(pp)) {
> +	if (!pp->fixed_link) {
>   		val = mvreg_read(pp, MVNETA_UNIT_CONTROL);
>   		val |= MVNETA_PHY_POLLING_ENABLE;
>   		mvreg_write(pp, MVNETA_UNIT_CONTROL, val);
> @@ -1173,7 +1166,7 @@ static void mvneta_adjust_link(struct udevice *dev)
>   	struct phy_device *phydev = pp->phydev;
>   	int status_change = 0;
>   
> -	if (mvneta_port_is_fixed_link(pp)) {
> +	if (pp->fixed_link) {
>   		debug("Using fixed link, skip link adjust\n");
>   		return;
>   	}
> @@ -1548,7 +1541,7 @@ static int mvneta_start(struct udevice *dev)
>   	mvneta_port_power_up(pp, pp->phy_interface);
>   
>   	if (!pp->init || pp->link == 0) {
> -		if (mvneta_port_is_fixed_link(pp)) {
> +		if (pp->fixed_link) {
>   			u32 val;
>   
>   			pp->init = 1;
> @@ -1698,7 +1691,6 @@ static int mvneta_probe(struct udevice *dev)
>   	void *blob = (void *)gd->fdt_blob;
>   	int node = dev_of_offset(dev);
>   	struct mii_dev *bus;
> -	unsigned long addr;
>   	void *bd_space;
>   	int ret;
>   	int fl_node;
> @@ -1742,14 +1734,9 @@ static int mvneta_probe(struct udevice *dev)
>   	fl_node = fdt_subnode_offset(blob, node, "fixed-link");
>   	if (fl_node != -FDT_ERR_NOTFOUND) {
>   		/* set phy_addr to invalid value for fixed link */
> -		pp->phyaddr = PHY_MAX_ADDR + 1;
>   		pp->duplex = fdtdec_get_bool(blob, fl_node, "full-duplex");
>   		pp->speed = fdtdec_get_int(blob, fl_node, "speed", 0);
> -	} else {
> -		/* Now read phyaddr from DT */
> -		addr = fdtdec_get_int(blob, node, "phy", 0);
> -		addr = fdt_node_offset_by_phandle(blob, addr);
> -		pp->phyaddr = fdtdec_get_int(blob, addr, "reg", 0);
> +		pp->fixed_link = true;
>   	}
>   
>   	bus = mdio_alloc();

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