Re: [PATCH net v2] net: phy: skip EEE advertisement write when autoneg is disabled

Nicolai Buchwitz <[email protected]>
Newsgroups dev.linux.lists.regressions,org.kernel.vger.linux-kernel,org.kernel.vger.netdev,org.kernel.vger.stable
Message-ID <[email protected]>
Hi Nerijus

On 16.5.2026 17:02, Nerijus Bendžiūnas wrote:
> genphy_c45_an_config_eee_aneg() writes the EEE advertisement to the
> auto-negotiation device's MMD register space (MDIO_MMD_AN, register
> MDIO_AN_EEE_ADV).  These registers are read by the link partner only
> during auto-negotiation, so writing them while autoneg is disabled
> cannot influence the link.  On some PHYs (e.g. Broadcom BCM54213PE)
> the write nevertheless reaches the chip and disturbs the receive
> datapath.
> 
> Concretely, running
> 
>     ethtool -s eth0 speed 100 duplex full autoneg off
>     ethtool --set-eee eth0 eee off
> 
> leaves eth0 with TX working and RX completely silent on a
> Raspberry Pi 4 / CM4 board (bcmgenet + BCM54213PE in rgmii-rxid).
> Switching back to autoneg recovers the link.
> 

Can confirm this. A quick look at the BCM54213PE datasheet shows that 
EEE is
only applied if autoneg is enabled (as expected). With autoneg disabled 
it
is undefined behavior, but clearly breaks communication.

> [...]

> 
> diff --git a/drivers/net/phy/phy-c45.c b/drivers/net/phy/phy-c45.c
> index d48aa7231b37..126951741428 100644
> --- a/drivers/net/phy/phy-c45.c
> +++ b/drivers/net/phy/phy-c45.c
> @@ -940,6 +940,14 @@ EXPORT_SYMBOL_GPL(genphy_c45_read_eee_abilities);
>   */
>  int genphy_c45_an_config_eee_aneg(struct phy_device *phydev)
>  {
> +	/* Writing MMD AN advertisements while autoneg is disabled has no
> +	 * effect on link-partner negotiation, but on some PHYs (e.g. the
> +	 * Broadcom BCM54213PE) the write itself disturbs the receive
> +	 * datapath. Skip it.
> +	 */
> +	if (phydev->autoneg == AUTONEG_DISABLE)
> +		return 0;
> +
>  	if (!phydev->eee_cfg.eee_enabled) {
>  		__ETHTOOL_DECLARE_LINK_MODE_MASK(adv) = {};

Reviewed-by: Nicolai Buchwitz <[email protected]>
Tested-by: Nicolai Buchwitz <[email protected]>

Thanks
Nicolai
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.