diff options
author | Maxime Bizon <mbizon@freebox.fr> | 2013-06-04 17:53:33 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-10 17:28:27 -0400 |
commit | 7260aac97447a2b2cb9e8684d1162118c4426354 (patch) | |
tree | 2a4f6db60db5e592b062cefd6519fcaa8f46b712 | |
parent | df09b36f2225b84571b3d5eda2e2683412320713 (diff) |
bcm63xx_enet: implement reset autoneg ethtool callback
Implement the rset_nway ethtool callback which uses libphy generic
autonegotiation restart function.
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/broadcom/bcm63xx_enet.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c index e46466cb3627..bc1a9948892b 100644 --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c | |||
@@ -1328,6 +1328,20 @@ static void bcm_enet_get_ethtool_stats(struct net_device *netdev, | |||
1328 | mutex_unlock(&priv->mib_update_lock); | 1328 | mutex_unlock(&priv->mib_update_lock); |
1329 | } | 1329 | } |
1330 | 1330 | ||
1331 | static int bcm_enet_nway_reset(struct net_device *dev) | ||
1332 | { | ||
1333 | struct bcm_enet_priv *priv; | ||
1334 | |||
1335 | priv = netdev_priv(dev); | ||
1336 | if (priv->has_phy) { | ||
1337 | if (!priv->phydev) | ||
1338 | return -ENODEV; | ||
1339 | return genphy_restart_aneg(priv->phydev); | ||
1340 | } | ||
1341 | |||
1342 | return -EOPNOTSUPP; | ||
1343 | } | ||
1344 | |||
1331 | static int bcm_enet_get_settings(struct net_device *dev, | 1345 | static int bcm_enet_get_settings(struct net_device *dev, |
1332 | struct ethtool_cmd *cmd) | 1346 | struct ethtool_cmd *cmd) |
1333 | { | 1347 | { |
@@ -1470,6 +1484,7 @@ static const struct ethtool_ops bcm_enet_ethtool_ops = { | |||
1470 | .get_strings = bcm_enet_get_strings, | 1484 | .get_strings = bcm_enet_get_strings, |
1471 | .get_sset_count = bcm_enet_get_sset_count, | 1485 | .get_sset_count = bcm_enet_get_sset_count, |
1472 | .get_ethtool_stats = bcm_enet_get_ethtool_stats, | 1486 | .get_ethtool_stats = bcm_enet_get_ethtool_stats, |
1487 | .nway_reset = bcm_enet_nway_reset, | ||
1473 | .get_settings = bcm_enet_get_settings, | 1488 | .get_settings = bcm_enet_get_settings, |
1474 | .set_settings = bcm_enet_set_settings, | 1489 | .set_settings = bcm_enet_set_settings, |
1475 | .get_drvinfo = bcm_enet_get_drvinfo, | 1490 | .get_drvinfo = bcm_enet_get_drvinfo, |