Skip to content

Commit 10bc6a6

Browse files
hkallweitdavem330
authored andcommitted
r8169: fix autoneg issue on resume with RTL8168E
It was reported that chip version 33 (RTL8168E) ends up with 10MBit/Half on a 1GBit link after resuming from S3 (with different link partners). For whatever reason the PHY on this chip doesn't properly start a renegotiation when soft-reset. Explicitly requesting a renegotiation fixes this. Fixes: a2965f1 ("r8169: remove rtl8169_set_speed_xmii") Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reported-by: Neil MacLeod <neil@nmacleod.com> Tested-by: Neil MacLeod <neil@nmacleod.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent d7ab5cd commit 10bc6a6

File tree

1 file changed

+9
-0
lines changed
  • drivers/net/ethernet/realtek

1 file changed

+9
-0
lines changed

drivers/net/ethernet/realtek/r8169.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4071,6 +4071,15 @@ static void rtl8169_init_phy(struct net_device *dev, struct rtl8169_private *tp)
40714071
phy_speed_up(dev->phydev);
40724072

40734073
genphy_soft_reset(dev->phydev);
4074+
4075+
/* It was reported that chip version 33 ends up with 10MBit/Half on a
4076+
* 1GBit link after resuming from S3. For whatever reason the PHY on
4077+
* this chip doesn't properly start a renegotiation when soft-reset.
4078+
* Explicitly requesting a renegotiation fixes this.
4079+
*/
4080+
if (tp->mac_version == RTL_GIGA_MAC_VER_33 &&
4081+
dev->phydev->autoneg == AUTONEG_ENABLE)
4082+
phy_restart_aneg(dev->phydev);
40744083
}
40754084

40764085
static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr)

0 commit comments

Comments
 (0)