diff mbox series

[net-next] net: mvneta: Add 2500BaseT support

Message ID 20190327163107.11642-1-maxime.chevallier@bootlin.com
State Accepted
Delegated to: David Miller
Headers show
Series [net-next] net: mvneta: Add 2500BaseT support | expand

Commit Message

Maxime Chevallier March 27, 2019, 4:31 p.m. UTC
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>
---
 drivers/net/ethernet/marvell/mvneta.c | 1 +
 1 file changed, 1 insertion(+)

Comments

David Miller March 29, 2019, 12:02 a.m. UTC | #1
From: Maxime Chevallier <maxime.chevallier@bootlin.com>
Date: Wed, 27 Mar 2019 17:31:06 +0100

> 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>

Applied.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index c0a3718b2e2a..a944be3c57b1 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -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);
 	}