Commit d9da2c87 authored by Jose Abreu's avatar Jose Abreu Committed by David S. Miller

net: stmmac: Limit max speeds of XGMAC if asked to

We may have some SoCs that can't achieve XGMAC max speed. Limit it if
asked to.
Signed-off-by: default avatarJose Abreu <joabreu@synopsys.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5f8475da
...@@ -831,15 +831,22 @@ static void stmmac_validate(struct phylink_config *config, ...@@ -831,15 +831,22 @@ static void stmmac_validate(struct phylink_config *config,
phylink_set(mask, 1000baseT_Full); phylink_set(mask, 1000baseT_Full);
phylink_set(mask, 1000baseX_Full); phylink_set(mask, 1000baseX_Full);
} else if (priv->plat->has_xgmac) { } else if (priv->plat->has_xgmac) {
phylink_set(mac_supported, 2500baseT_Full); if (!max_speed || (max_speed >= 2500)) {
phylink_set(mac_supported, 5000baseT_Full); phylink_set(mac_supported, 2500baseT_Full);
phylink_set(mac_supported, 10000baseSR_Full); phylink_set(mac_supported, 2500baseX_Full);
phylink_set(mac_supported, 10000baseLR_Full); }
phylink_set(mac_supported, 10000baseER_Full); if (!max_speed || (max_speed >= 5000)) {
phylink_set(mac_supported, 10000baseLRM_Full); phylink_set(mac_supported, 5000baseT_Full);
phylink_set(mac_supported, 10000baseT_Full); }
phylink_set(mac_supported, 10000baseKX4_Full); if (!max_speed || (max_speed >= 10000)) {
phylink_set(mac_supported, 10000baseKR_Full); phylink_set(mac_supported, 10000baseSR_Full);
phylink_set(mac_supported, 10000baseLR_Full);
phylink_set(mac_supported, 10000baseER_Full);
phylink_set(mac_supported, 10000baseLRM_Full);
phylink_set(mac_supported, 10000baseT_Full);
phylink_set(mac_supported, 10000baseKX4_Full);
phylink_set(mac_supported, 10000baseKR_Full);
}
} }
/* Half-Duplex can only work with single queue */ /* Half-Duplex can only work with single queue */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment