net: mvneta: Add 2500BaseT support
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Wed, 27 Mar 2019 16:31:06 +0000 (17:31 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 29 Mar 2019 00:02:21 +0000 (17:02 -0700)
Some PHYs will use the 2500BaseX PHY_INTERFACE_MODE when being linked
with a partner using 2.5GBaseT.

Since we can't autonegotiate this speed between the MAC and the PHY, we
need to have the proper comphy support enabled, to make sure we can
safely advertise 2.5G and 1G in BaseT and be able to switch between both
corresponding PHY interface modes. This is now possible since comphy
support was added to this driver.

This commit adds the 2500BaseT mode to the list of supported modes when
using 2500BaseX, and was tested on a setup with an Armada385 and a
88E2010 PHY, both with and without the comphy node in the DT.

Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvneta.c

index c0a3718b2e2a78616b3c02831aad80f31d0acf30..a944be3c57b1416bae5929c28facae10abdea507 100644 (file)
@@ -3385,6 +3385,7 @@ static void mvneta_validate(struct net_device *ndev, unsigned long *supported,
                phylink_set(mask, 1000baseX_Full);
        }
        if (pp->comphy || state->interface == PHY_INTERFACE_MODE_2500BASEX) {
+               phylink_set(mask, 2500baseT_Full);
                phylink_set(mask, 2500baseX_Full);
        }