diff options
author | hayeswang <hayeswang@realtek.com> | 2014-10-28 09:05:52 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-29 22:09:08 +0300 |
commit | 8884f5078085a3cd4dc9c24bc81e00177c49cf5b (patch) | |
tree | d6899f66d352b03aa2bc70deb6fbb8c09afd7b1e /drivers/net | |
parent | f37119c57ba7591b365b41697f971ca3e1f16ed1 (diff) | |
download | linux-8884f5078085a3cd4dc9c24bc81e00177c49cf5b.tar.xz |
r8152: support nway_reset of ethtool
Support the nway_reset() function for ethtool.
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/usb/r8152.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index fdea19412cdb..e1810bc386b7 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -3558,11 +3558,33 @@ out: return ret; } +static int rtl8152_nway_reset(struct net_device *dev) +{ + struct r8152 *tp = netdev_priv(dev); + int ret; + + ret = usb_autopm_get_interface(tp->intf); + if (ret < 0) + goto out; + + mutex_lock(&tp->control); + + ret = mii_nway_restart(&tp->mii); + + mutex_unlock(&tp->control); + + usb_autopm_put_interface(tp->intf); + +out: + return ret; +} + static struct ethtool_ops ops = { .get_drvinfo = rtl8152_get_drvinfo, .get_settings = rtl8152_get_settings, .set_settings = rtl8152_set_settings, .get_link = ethtool_op_get_link, + .nway_reset = rtl8152_nway_reset, .get_msglevel = rtl8152_get_msglevel, .set_msglevel = rtl8152_set_msglevel, .get_wol = rtl8152_get_wol, |