aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/usb
diff options
context:
space:
mode:
authorhayeswang <hayeswang@realtek.com>2015-02-05 22:30:47 -0500
committerDavid S. Miller <davem@davemloft.net>2015-02-08 01:46:25 -0500
commit51d979faa274d2a924907bdf59f88a216dcc19a9 (patch)
tree6763904e6c7201a1c014892ca5349b7c9d6c103d /drivers/net/usb
parent34203e25cb04ca942e29907b602c4f3d40e3c8ec (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/usb')
-rw-r--r--drivers/net/usb/r8152.c23
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
587enum rtl_version { 586enum 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
2938static void rtl_work_func_t(struct work_struct *work) 2936static 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 }