aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/freescale/fec_main.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index c540055e4f4f..46f2544fd1a7 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -1435,6 +1435,17 @@ static int fec_enet_set_pauseparam(struct net_device *ndev,
1435 return 0; 1435 return 0;
1436} 1436}
1437 1437
1438static int fec_enet_nway_reset(struct net_device *dev)
1439{
1440 struct fec_enet_private *fep = netdev_priv(dev);
1441 struct phy_device *phydev = fep->phy_dev;
1442
1443 if (!phydev)
1444 return -ENODEV;
1445
1446 return genphy_restart_aneg(phydev);
1447}
1448
1438static const struct ethtool_ops fec_enet_ethtool_ops = { 1449static const struct ethtool_ops fec_enet_ethtool_ops = {
1439 .get_pauseparam = fec_enet_get_pauseparam, 1450 .get_pauseparam = fec_enet_get_pauseparam,
1440 .set_pauseparam = fec_enet_set_pauseparam, 1451 .set_pauseparam = fec_enet_set_pauseparam,
@@ -1443,6 +1454,7 @@ static const struct ethtool_ops fec_enet_ethtool_ops = {
1443 .get_drvinfo = fec_enet_get_drvinfo, 1454 .get_drvinfo = fec_enet_get_drvinfo,
1444 .get_link = ethtool_op_get_link, 1455 .get_link = ethtool_op_get_link,
1445 .get_ts_info = fec_enet_get_ts_info, 1456 .get_ts_info = fec_enet_get_ts_info,
1457 .nway_reset = fec_enet_nway_reset,
1446}; 1458};
1447 1459
1448static int fec_enet_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd) 1460static int fec_enet_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)