Re: [PATCH 7/7] net: phy: at803x: disable extended next page bit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10.07.23 08:36, Marco Felsch wrote:
> This commit ports Linux commit:
> 
> | commit 3c51fa5d2afe7a4909b53af5019635326389dd29
> | Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxx>
> | Date:   Tue Jan 12 22:59:43 2021 +0000
> |
> |     net: phy: ar803x: disable extended next page bit
> |
> |     This bit is enabled by default and advertises support for extended
> |     next page support.  XNP is only needed for 10GBase-T and MultiGig
> |     support which is not supported. Additionally, Cisco MultiGig switches
> |     will read this bit and attempt 10Gb negotiation even though Next Page
> |     support is disabled. This will cause timeouts when the interface is
> |     forced to 100Mbps and auto-negotiation will fail. The interfaces are
> |     only 1000Base-T and supporting auto-negotiation for this only requires
> |     the Next Page bit to be set.
> |
> |     Taken from:
> |     https://github.com/SolidRun/linux-stable/commit/7406c5244b7ea6bc17a2afe8568277a8c4b126a9
> |     and adapted to mainline kernels by rmk.
> |
> |     Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxx>
> |     Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
> |     Link: https://lore.kernel.org/r/E1kzSdb-000417-FJ@xxxxxxxxxxxxxxxxxxxxxx
> |     Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
> 
> Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>

Reviewed-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx>

> ---
>  drivers/net/phy/at803x.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
> index d8a9c3588f..577bdf1244 100644
> --- a/drivers/net/phy/at803x.c
> +++ b/drivers/net/phy/at803x.c
> @@ -365,7 +365,13 @@ static int at803x_config_init(struct phy_device *phydev)
>  	if (ret < 0)
>  		return ret;
>  
> -	return 0;
> +	/* Ar803x extended next page bit is enabled by default. Cisco
> +	 * multigig switches read this bit and attempt to negotiate 10Gbps
> +	 * rates even if the next page bit is disabled. This is incorrect
> +	 * behaviour but we still need to accommodate it. XNP is only needed
> +	 * for 10Gbps support, so disable XNP.
> +	 */
> +	return phy_modify(phydev, MII_ADVERTISE, MDIO_AN_CTRL1_XNP, 0);
>  }
>  
>  static struct phy_driver at803x_driver[] = {

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |





[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux