On 2019/2/1 0:59, Russell King wrote: > This reverts commit 6623c0fba10ef45b64ca213ad5dec926f37fa9a0. > > The original diagnosis was incorrect: it appears that the NIC had > PHY polling mode enabled, which meant that it overwrote the PHYs > advertisement register during negotiation. > > Signed-off-by: Russell King <[email protected]>
Tested-by: Yonglong Liu <[email protected]> Had done boot testing, and the networking is fine too. > --- > v2: respun on top of net-next, but I've not yet been able to boot > test this - which is unlikely to be for a while yet. > > The extraneous whitespace change comes from the reversion of the > original patch - I added a "u32 pause" and blank line there. The > patch converting to link modes removed the "u32 pause" but left > the blank line, causing a coding style issue. It seems only right > that a reversion of the original commit fixes that too. > > drivers/net/phy/marvell.c | 16 ---------------- > 1 file changed, 16 deletions(-) > > diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c > index 90f44ba8aca7..3ccba37bd6dd 100644 > --- a/drivers/net/phy/marvell.c > +++ b/drivers/net/phy/marvell.c > @@ -842,7 +842,6 @@ static int m88e1510_config_init(struct phy_device *phydev) > > /* SGMII-to-Copper mode initialization */ > if (phydev->interface == PHY_INTERFACE_MODE_SGMII) { > - > /* Select page 18 */ > err = marvell_set_page(phydev, 18); > if (err < 0) > @@ -865,21 +864,6 @@ static int m88e1510_config_init(struct phy_device > *phydev) > err = marvell_set_page(phydev, MII_MARVELL_COPPER_PAGE); > if (err < 0) > return err; > - > - /* There appears to be a bug in the 88e1512 when used in > - * SGMII to copper mode, where the AN advertisement register > - * clears the pause bits each time a negotiation occurs. > - * This means we can never be truely sure what was advertised, > - * so disable Pause support. > - */ > - linkmode_clear_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, > - phydev->supported); > - linkmode_clear_bit(ETHTOOL_LINK_MODE_Pause_BIT, > - phydev->supported); > - linkmode_clear_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, > - phydev->advertising); > - linkmode_clear_bit(ETHTOOL_LINK_MODE_Pause_BIT, > - phydev->advertising); > } > > return m88e1318_config_init(phydev); >
