Commit b6b5e8a6 authored by Claudiu Manoil's avatar Claudiu Manoil Committed by David S. Miller

gianfar: Disable EEE autoneg by default

This controller does not support EEE, but it may connect to a PHY
which supports EEE and advertises EEE by default, while its link
partner also advertises EEE. If this happens, the PHY enters low
power mode when the traffic rate is low and causes packet loss.
This patch disables EEE advertisement by default for any PHY that
gianfar connects to, to prevent the above unwanted outcome.
Signed-off-by: default avatarShaohui Xie <Shaohui.Xie@nxp.com>
Tested-by: default avatarYangbo Lu <Yangbo.lu@nxp.com>
Signed-off-by: default avatarClaudiu Manoil <claudiu.manoil@nxp.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d4761754
...@@ -1792,6 +1792,7 @@ static int init_phy(struct net_device *dev) ...@@ -1792,6 +1792,7 @@ static int init_phy(struct net_device *dev)
GFAR_SUPPORTED_GBIT : 0; GFAR_SUPPORTED_GBIT : 0;
phy_interface_t interface; phy_interface_t interface;
struct phy_device *phydev; struct phy_device *phydev;
struct ethtool_eee edata;
priv->oldlink = 0; priv->oldlink = 0;
priv->oldspeed = 0; priv->oldspeed = 0;
...@@ -1816,6 +1817,10 @@ static int init_phy(struct net_device *dev) ...@@ -1816,6 +1817,10 @@ static int init_phy(struct net_device *dev)
/* Add support for flow control, but don't advertise it by default */ /* Add support for flow control, but don't advertise it by default */
phydev->supported |= (SUPPORTED_Pause | SUPPORTED_Asym_Pause); phydev->supported |= (SUPPORTED_Pause | SUPPORTED_Asym_Pause);
/* disable EEE autoneg, EEE not supported by eTSEC */
memset(&edata, 0, sizeof(struct ethtool_eee));
phy_ethtool_set_eee(phydev, &edata);
return 0; return 0;
} }
......
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