Skip to content

Commit

Permalink
enetc: disable EEE autoneg by default
Browse files Browse the repository at this point in the history
The EEE support has not been enabled on ENETC, 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
ENETC connects to, to prevent the above unwanted outcome.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
yangbolu1991 authored and davem330 committed Dec 6, 2019
1 parent ae72555 commit a6a10d4
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/net/ethernet/freescale/enetc/enetc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1332,6 +1332,7 @@ static int enetc_phy_connect(struct net_device *ndev)
{
struct enetc_ndev_priv *priv = netdev_priv(ndev);
struct phy_device *phydev;
struct ethtool_eee edata;

if (!priv->phy_node)
return 0; /* phy-less mode */
Expand All @@ -1345,6 +1346,10 @@ static int enetc_phy_connect(struct net_device *ndev)

phy_attached_info(phydev);

/* disable EEE autoneg, until ENETC driver supports it */
memset(&edata, 0, sizeof(struct ethtool_eee));
phy_ethtool_set_eee(phydev, &edata);

return 0;
}

Expand Down

0 comments on commit a6a10d4

Please sign in to comment.