diff options
author | Deepak Khungar <deepak.khungar@broadcom.com> | 2016-09-19 03:58:08 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-09-19 21:32:25 -0400 |
commit | ae8e98a6fa7a73917196c507e43414ea96b6a0fc (patch) | |
tree | a238cbad67e11e446a49615bf36d88260f926883 /drivers/net/ethernet/broadcom | |
parent | 4ffcd582301bd020b1f9d00c55473af305ec19b5 (diff) |
bnxt_en: Support for "ethtool -r" command
Restart autoneg if autoneg is enabled.
Signed-off-by: Deepak Khungar <deepak.khungar@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index c74ce698805e..a7e04ff4eaed 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | |||
@@ -1849,6 +1849,25 @@ static int bnxt_get_module_eeprom(struct net_device *dev, | |||
1849 | return rc; | 1849 | return rc; |
1850 | } | 1850 | } |
1851 | 1851 | ||
1852 | static int bnxt_nway_reset(struct net_device *dev) | ||
1853 | { | ||
1854 | int rc = 0; | ||
1855 | |||
1856 | struct bnxt *bp = netdev_priv(dev); | ||
1857 | struct bnxt_link_info *link_info = &bp->link_info; | ||
1858 | |||
1859 | if (!BNXT_SINGLE_PF(bp)) | ||
1860 | return -EOPNOTSUPP; | ||
1861 | |||
1862 | if (!(link_info->autoneg & BNXT_AUTONEG_SPEED)) | ||
1863 | return -EINVAL; | ||
1864 | |||
1865 | if (netif_running(dev)) | ||
1866 | rc = bnxt_hwrm_set_link_setting(bp, true, false); | ||
1867 | |||
1868 | return rc; | ||
1869 | } | ||
1870 | |||
1852 | const struct ethtool_ops bnxt_ethtool_ops = { | 1871 | const struct ethtool_ops bnxt_ethtool_ops = { |
1853 | .get_link_ksettings = bnxt_get_link_ksettings, | 1872 | .get_link_ksettings = bnxt_get_link_ksettings, |
1854 | .set_link_ksettings = bnxt_set_link_ksettings, | 1873 | .set_link_ksettings = bnxt_set_link_ksettings, |
@@ -1881,4 +1900,5 @@ const struct ethtool_ops bnxt_ethtool_ops = { | |||
1881 | .set_eee = bnxt_set_eee, | 1900 | .set_eee = bnxt_set_eee, |
1882 | .get_module_info = bnxt_get_module_info, | 1901 | .get_module_info = bnxt_get_module_info, |
1883 | .get_module_eeprom = bnxt_get_module_eeprom, | 1902 | .get_module_eeprom = bnxt_get_module_eeprom, |
1903 | .nway_reset = bnxt_nway_reset | ||
1884 | }; | 1904 | }; |