From: Russell King (Oracle) Date: Thu, 7 Jul 2022 09:20:02 +0000 (+0100) Subject: net: phylink: fix SGMII inband autoneg enable X-Git-Tag: v6.0-rc1~141^2~169 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6d1ce9c03880c28a4a48f94d4a2dcb2e57c1b88e;p=thirdparty%2Fkernel%2Flinux.git net: phylink: fix SGMII inband autoneg enable When we are operating in SGMII inband mode, it implies that there is a PHY connected, and the ethtool advertisement for autoneg applies to the PHY, not the SGMII link. When in 1000base-X mode, then this applies to the 802.3z link and needs to be applied to the PCS. Fix this. Reviewed-by: Andrew Lunn Signed-off-by: Russell King (Oracle) Link: https://lore.kernel.org/r/E1o9Ng2-005Qbe-3H@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 48f0b9b39491e..9bd69328dc4d4 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -3040,7 +3040,9 @@ int phylink_mii_c22_pcs_config(struct mdio_device *pcs, unsigned int mode, /* Ensure ISOLATE bit is disabled */ if (mode == MLO_AN_INBAND && - linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, advertising)) + (interface == PHY_INTERFACE_MODE_SGMII || + interface == PHY_INTERFACE_MODE_QSGMII || + linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, advertising))) bmcr = BMCR_ANENABLE; else bmcr = 0;