net: phy: marvell10g: allow 5gbase-r and usxgmii
authorMarek Behún <kabel@kernel.org>
Wed, 7 Apr 2021 20:22:41 +0000 (22:22 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Apr 2021 20:15:33 +0000 (13:15 -0700)
These modes are also supported by these PHYs.

Signed-off-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/marvell10g.c

index f2f0da9..881a071 100644 (file)
@@ -462,9 +462,11 @@ static int mv3310_config_init(struct phy_device *phydev)
        /* Check that the PHY interface type is compatible */
        if (phydev->interface != PHY_INTERFACE_MODE_SGMII &&
            phydev->interface != PHY_INTERFACE_MODE_2500BASEX &&
+           phydev->interface != PHY_INTERFACE_MODE_5GBASER &&
            phydev->interface != PHY_INTERFACE_MODE_XAUI &&
            phydev->interface != PHY_INTERFACE_MODE_RXAUI &&
-           phydev->interface != PHY_INTERFACE_MODE_10GBASER)
+           phydev->interface != PHY_INTERFACE_MODE_10GBASER &&
+           phydev->interface != PHY_INTERFACE_MODE_USXGMII)
                return -ENODEV;
 
        phydev->mdix_ctrl = ETH_TP_MDI_AUTO;
@@ -599,6 +601,7 @@ static void mv3310_update_interface(struct phy_device *phydev)
 
        if ((phydev->interface == PHY_INTERFACE_MODE_SGMII ||
             phydev->interface == PHY_INTERFACE_MODE_2500BASEX ||
+            phydev->interface == PHY_INTERFACE_MODE_5GBASER ||
             phydev->interface == PHY_INTERFACE_MODE_10GBASER) &&
            phydev->link) {
                /* The PHY automatically switches its serdes interface (and
@@ -611,6 +614,9 @@ static void mv3310_update_interface(struct phy_device *phydev)
                case SPEED_10000:
                        phydev->interface = PHY_INTERFACE_MODE_10GBASER;
                        break;
+               case SPEED_5000:
+                       phydev->interface = PHY_INTERFACE_MODE_5GBASER;
+                       break;
                case SPEED_2500:
                        phydev->interface = PHY_INTERFACE_MODE_2500BASEX;
                        break;