diff options
author | hayeswang <hayeswang@realtek.com> | 2016-06-13 17:49:38 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-14 22:37:48 -0700 |
commit | aa7e26b66ad7e38371ca5a575f6581c645eef58a (patch) | |
tree | 491c3f4a82687afb7502a8fd18add33c5887f1de /drivers | |
parent | 9d21c0d83ea3def89b9cd33222b1c44c1af44b4d (diff) | |
download | linux-aa7e26b66ad7e38371ca5a575f6581c645eef58a.tar.bz2 |
r8152: save the speed
The user may change the speed. Use it to replace the default one.
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/usb/r8152.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index dcdc4fa50d31..69d1bbfd1fa0 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -628,8 +628,11 @@ struct r8152 { u32 tx_qlen; u32 coalesce; u16 ocp_base; + u16 speed; u8 *intr_buff; u8 version; + u8 duplex; + u8 autoneg; }; enum rtl_version { @@ -3051,9 +3054,7 @@ static void rtl_hw_phy_work_func_t(struct work_struct *work) tp->rtl_ops.hw_phy_cfg(tp); - rtl8152_set_speed(tp, AUTONEG_ENABLE, - tp->mii.supports_gmii ? SPEED_1000 : SPEED_100, - DUPLEX_FULL); + rtl8152_set_speed(tp, tp->autoneg, tp->speed, tp->duplex); mutex_unlock(&tp->control); @@ -3679,6 +3680,11 @@ static int rtl8152_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) mutex_lock(&tp->control); ret = rtl8152_set_speed(tp, cmd->autoneg, cmd->speed, cmd->duplex); + if (!ret) { + tp->autoneg = cmd->autoneg; + tp->speed = cmd->speed; + tp->duplex = cmd->duplex; + } mutex_unlock(&tp->control); @@ -4239,6 +4245,10 @@ static int rtl8152_probe(struct usb_interface *intf, break; } + tp->autoneg = AUTONEG_ENABLE; + tp->speed = tp->mii.supports_gmii ? SPEED_1000 : SPEED_100; + tp->duplex = DUPLEX_FULL; + intf->needs_remote_wakeup = 1; tp->rtl_ops.init(tp); |