net: phy: marvell10g: limit soft reset to 88x3310
authorBaruch Siach <baruch@tkos.co.il>
Tue, 21 Apr 2020 09:04:46 +0000 (12:04 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Apr 2020 19:31:41 +0000 (12:31 -0700)
The MV_V2_PORT_CTRL_SWRST bit in MV_V2_PORT_CTRL is reserved on 88E2110.
Setting SWRST on 88E2110 breaks packets transfer after interface down/up
cycle.

Fixes: 8f48c2ac85ed ("net: marvell10g: soft-reset the PHY when coming out of low power")
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/marvell10g.c

index 95e3f46..ff12492 100644 (file)
@@ -246,7 +246,8 @@ static int mv3310_power_up(struct phy_device *phydev)
        ret = phy_clear_bits_mmd(phydev, MDIO_MMD_VEND2, MV_V2_PORT_CTRL,
                                 MV_V2_PORT_CTRL_PWRDOWN);
 
-       if (priv->firmware_ver < 0x00030000)
+       if (phydev->drv->phy_id != MARVELL_PHY_ID_88X3310 ||
+           priv->firmware_ver < 0x00030000)
                return ret;
 
        return phy_set_bits_mmd(phydev, MDIO_MMD_VEND2, MV_V2_PORT_CTRL,