diff options
author | hayeswang <hayeswang@realtek.com> | 2015-02-05 22:30:47 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-02-08 01:46:25 -0500 |
commit | 51d979faa274d2a924907bdf59f88a216dcc19a9 (patch) | |
tree | 6763904e6c7201a1c014892ca5349b7c9d6c103d /drivers/net | |
parent | 34203e25cb04ca942e29907b602c4f3d40e3c8ec (diff) |
r8152: check linking status with netif_carrier_ok
Replace (tp->speed & LINK_STATUS) with netif_carrier_ok().
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 | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index ff122fae6586..66678093db10 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c | |||
@@ -581,7 +581,6 @@ struct r8152 { | |||
581 | u16 ocp_base; | 581 | u16 ocp_base; |
582 | u8 *intr_buff; | 582 | u8 *intr_buff; |
583 | u8 version; | 583 | u8 version; |
584 | u8 speed; | ||
585 | }; | 584 | }; |
586 | 585 | ||
587 | enum rtl_version { | 586 | enum rtl_version { |
@@ -1157,12 +1156,12 @@ static void intr_callback(struct urb *urb) | |||
1157 | 1156 | ||
1158 | d = urb->transfer_buffer; | 1157 | d = urb->transfer_buffer; |
1159 | if (INTR_LINK & __le16_to_cpu(d[0])) { | 1158 | if (INTR_LINK & __le16_to_cpu(d[0])) { |
1160 | if (!(tp->speed & LINK_STATUS)) { | 1159 | if (!netif_carrier_ok(tp->netdev)) { |
1161 | set_bit(RTL8152_LINK_CHG, &tp->flags); | 1160 | set_bit(RTL8152_LINK_CHG, &tp->flags); |
1162 | schedule_delayed_work(&tp->schedule, 0); | 1161 | schedule_delayed_work(&tp->schedule, 0); |
1163 | } | 1162 | } |
1164 | } else { | 1163 | } else { |
1165 | if (tp->speed & LINK_STATUS) { | 1164 | if (netif_carrier_ok(tp->netdev)) { |
1166 | set_bit(RTL8152_LINK_CHG, &tp->flags); | 1165 | set_bit(RTL8152_LINK_CHG, &tp->flags); |
1167 | schedule_delayed_work(&tp->schedule, 0); | 1166 | schedule_delayed_work(&tp->schedule, 0); |
1168 | } | 1167 | } |
@@ -1894,7 +1893,7 @@ static void rtl8152_set_rx_mode(struct net_device *netdev) | |||
1894 | { | 1893 | { |
1895 | struct r8152 *tp = netdev_priv(netdev); | 1894 | struct r8152 *tp = netdev_priv(netdev); |
1896 | 1895 | ||
1897 | if (tp->speed & LINK_STATUS) { | 1896 | if (netif_carrier_ok(netdev)) { |
1898 | set_bit(RTL8152_SET_RX_MODE, &tp->flags); | 1897 | set_bit(RTL8152_SET_RX_MODE, &tp->flags); |
1899 | schedule_delayed_work(&tp->schedule, 0); | 1898 | schedule_delayed_work(&tp->schedule, 0); |
1900 | } | 1899 | } |
@@ -2918,21 +2917,20 @@ static void set_carrier(struct r8152 *tp) | |||
2918 | speed = rtl8152_get_speed(tp); | 2917 | speed = rtl8152_get_speed(tp); |
2919 | 2918 | ||
2920 | if (speed & LINK_STATUS) { | 2919 | if (speed & LINK_STATUS) { |
2921 | if (!(tp->speed & LINK_STATUS)) { | 2920 | if (!netif_carrier_ok(netdev)) { |
2922 | tp->rtl_ops.enable(tp); | 2921 | tp->rtl_ops.enable(tp); |
2923 | set_bit(RTL8152_SET_RX_MODE, &tp->flags); | 2922 | set_bit(RTL8152_SET_RX_MODE, &tp->flags); |
2924 | netif_carrier_on(netdev); | 2923 | netif_carrier_on(netdev); |
2925 | rtl_start_rx(tp); | 2924 | rtl_start_rx(tp); |
2926 | } | 2925 | } |
2927 | } else { | 2926 | } else { |
2928 | if (tp->speed & LINK_STATUS) { | 2927 | if (netif_carrier_ok(netdev)) { |
2929 | netif_carrier_off(netdev); | 2928 | netif_carrier_off(netdev); |
2930 | napi_disable(&tp->napi); | 2929 | napi_disable(&tp->napi); |
2931 | tp->rtl_ops.disable(tp); | 2930 | tp->rtl_ops.disable(tp); |
2932 | napi_enable(&tp->napi); | 2931 | napi_enable(&tp->napi); |
2933 | } | 2932 | } |
2934 | } | 2933 | } |
2935 | tp->speed = speed; | ||
2936 | } | 2934 | } |
2937 | 2935 | ||
2938 | static void rtl_work_func_t(struct work_struct *work) | 2936 | static void rtl_work_func_t(struct work_struct *work) |
@@ -2964,7 +2962,7 @@ static void rtl_work_func_t(struct work_struct *work) | |||
2964 | 2962 | ||
2965 | /* don't schedule napi before linking */ | 2963 | /* don't schedule napi before linking */ |
2966 | if (test_bit(SCHEDULE_NAPI, &tp->flags) && | 2964 | if (test_bit(SCHEDULE_NAPI, &tp->flags) && |
2967 | (tp->speed & LINK_STATUS)) { | 2965 | netif_carrier_ok(tp->netdev)) { |
2968 | clear_bit(SCHEDULE_NAPI, &tp->flags); | 2966 | clear_bit(SCHEDULE_NAPI, &tp->flags); |
2969 | napi_schedule(&tp->napi); | 2967 | napi_schedule(&tp->napi); |
2970 | } | 2968 | } |
@@ -2987,8 +2985,7 @@ static int rtl8152_open(struct net_device *netdev) | |||
2987 | if (res) | 2985 | if (res) |
2988 | goto out; | 2986 | goto out; |
2989 | 2987 | ||
2990 | /* set speed to 0 to avoid autoresume try to submit rx */ | 2988 | netif_carrier_off(netdev); |
2991 | tp->speed = 0; | ||
2992 | 2989 | ||
2993 | res = usb_autopm_get_interface(tp->intf); | 2990 | res = usb_autopm_get_interface(tp->intf); |
2994 | if (res < 0) { | 2991 | if (res < 0) { |
@@ -3005,7 +3002,7 @@ static int rtl8152_open(struct net_device *netdev) | |||
3005 | cancel_delayed_work_sync(&tp->schedule); | 3002 | cancel_delayed_work_sync(&tp->schedule); |
3006 | 3003 | ||
3007 | /* disable the tx/rx, if the workqueue has enabled them. */ | 3004 | /* disable the tx/rx, if the workqueue has enabled them. */ |
3008 | if (tp->speed & LINK_STATUS) | 3005 | if (netif_carrier_ok(netdev)) |
3009 | tp->rtl_ops.disable(tp); | 3006 | tp->rtl_ops.disable(tp); |
3010 | } | 3007 | } |
3011 | 3008 | ||
@@ -3014,7 +3011,6 @@ static int rtl8152_open(struct net_device *netdev) | |||
3014 | rtl8152_set_speed(tp, AUTONEG_ENABLE, | 3011 | rtl8152_set_speed(tp, AUTONEG_ENABLE, |
3015 | tp->mii.supports_gmii ? SPEED_1000 : SPEED_100, | 3012 | tp->mii.supports_gmii ? SPEED_1000 : SPEED_100, |
3016 | DUPLEX_FULL); | 3013 | DUPLEX_FULL); |
3017 | tp->speed = 0; | ||
3018 | netif_carrier_off(netdev); | 3014 | netif_carrier_off(netdev); |
3019 | netif_start_queue(netdev); | 3015 | netif_start_queue(netdev); |
3020 | set_bit(WORK_ENABLE, &tp->flags); | 3016 | set_bit(WORK_ENABLE, &tp->flags); |
@@ -3340,7 +3336,7 @@ static int rtl8152_resume(struct usb_interface *intf) | |||
3340 | rtl_runtime_suspend_enable(tp, false); | 3336 | rtl_runtime_suspend_enable(tp, false); |
3341 | clear_bit(SELECTIVE_SUSPEND, &tp->flags); | 3337 | clear_bit(SELECTIVE_SUSPEND, &tp->flags); |
3342 | set_bit(WORK_ENABLE, &tp->flags); | 3338 | set_bit(WORK_ENABLE, &tp->flags); |
3343 | if (tp->speed & LINK_STATUS) | 3339 | if (netif_carrier_ok(tp->netdev)) |
3344 | rtl_start_rx(tp); | 3340 | rtl_start_rx(tp); |
3345 | } else { | 3341 | } else { |
3346 | tp->rtl_ops.up(tp); | 3342 | tp->rtl_ops.up(tp); |
@@ -3348,7 +3344,6 @@ static int rtl8152_resume(struct usb_interface *intf) | |||
3348 | tp->mii.supports_gmii ? | 3344 | tp->mii.supports_gmii ? |
3349 | SPEED_1000 : SPEED_100, | 3345 | SPEED_1000 : SPEED_100, |
3350 | DUPLEX_FULL); | 3346 | DUPLEX_FULL); |
3351 | tp->speed = 0; | ||
3352 | netif_carrier_off(tp->netdev); | 3347 | netif_carrier_off(tp->netdev); |
3353 | set_bit(WORK_ENABLE, &tp->flags); | 3348 | set_bit(WORK_ENABLE, &tp->flags); |
3354 | } | 3349 | } |