mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
56 lines
2.4 KiB
Diff
56 lines
2.4 KiB
Diff
|
From 83e65df6dfece9eb588735459428f221eb930c0c Mon Sep 17 00:00:00 2001
|
||
|
From: Maxime Chevallier <maxime.chevallier@bootlin.com>
|
||
|
Date: Fri, 9 Nov 2018 09:17:33 +0100
|
||
|
Subject: [PATCH] net: mvneta: Don't advertise 2.5G modes
|
||
|
|
||
|
Using 2.5G speed relies on the SerDes lanes being configured
|
||
|
accordingly. The lanes have to be reconfigured to switch between
|
||
|
1G and 2.5G, and for now only the bootloader does this configuration.
|
||
|
|
||
|
In the case we add a Comphy driver to handle switching the lanes
|
||
|
dynamically, it's better for now to stick with supporting only 1G and
|
||
|
add advertisement for 2.5G once we really are capable of handling both
|
||
|
speeds without problem.
|
||
|
|
||
|
Since the interface mode is initialy taken from the DT, we want to make
|
||
|
sure that adding comphy support won't break boards that don't update
|
||
|
their dtb.
|
||
|
|
||
|
Fixes: da58a931f248 ("net: mvneta: Add support for 2500Mbps SGMII")
|
||
|
Reported-by: Andrew Lunn <andrew@lunn.ch>
|
||
|
Reported-by: Russell King <linux@armlinux.org.uk>
|
||
|
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
|
||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||
|
---
|
||
|
drivers/net/ethernet/marvell/mvneta.c | 12 +++---------
|
||
|
1 file changed, 3 insertions(+), 9 deletions(-)
|
||
|
|
||
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||
|
+++ b/drivers/net/ethernet/marvell/mvneta.c
|
||
|
@@ -3346,7 +3346,6 @@ static void mvneta_validate(struct net_d
|
||
|
if (state->interface != PHY_INTERFACE_MODE_NA &&
|
||
|
state->interface != PHY_INTERFACE_MODE_QSGMII &&
|
||
|
state->interface != PHY_INTERFACE_MODE_SGMII &&
|
||
|
- state->interface != PHY_INTERFACE_MODE_2500BASEX &&
|
||
|
!phy_interface_mode_is_8023z(state->interface) &&
|
||
|
!phy_interface_mode_is_rgmii(state->interface)) {
|
||
|
bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
|
||
|
@@ -3360,14 +3359,9 @@ static void mvneta_validate(struct net_d
|
||
|
/* Asymmetric pause is unsupported */
|
||
|
phylink_set(mask, Pause);
|
||
|
|
||
|
- /* We cannot use 1Gbps when using the 2.5G interface. */
|
||
|
- if (state->interface == PHY_INTERFACE_MODE_2500BASEX) {
|
||
|
- phylink_set(mask, 2500baseT_Full);
|
||
|
- phylink_set(mask, 2500baseX_Full);
|
||
|
- } else {
|
||
|
- phylink_set(mask, 1000baseT_Full);
|
||
|
- phylink_set(mask, 1000baseX_Full);
|
||
|
- }
|
||
|
+ /* Half-duplex at speeds higher than 100Mbit is unsupported */
|
||
|
+ phylink_set(mask, 1000baseT_Full);
|
||
|
+ phylink_set(mask, 1000baseX_Full);
|
||
|
|
||
|
if (!phy_interface_mode_is_8023z(state->interface)) {
|
||
|
/* 10M and 100M are only supported in non-802.3z mode */
|