diff options
author | Sujith Manoharan <c_manoha@qca.qualcomm.com> | 2012-06-25 04:24:41 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-06-26 14:28:51 -0400 |
commit | d8a2c51cdcaee0131c88f49d64b84f1c7361d72c (patch) | |
tree | 10755d698c5142f2517d5ad39b722c45420cc7c8 /drivers | |
parent | fb1c078edb50376c14e049b22b10768b8245428a (diff) |
ath9k_htc: Use atomic operations for op_flags
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_beacon.c | 10 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_gpio.c | 30 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_init.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_main.c | 28 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 2 |
6 files changed, 37 insertions, 37 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h index 135795257d95..1ee6548c7125 100644 --- a/drivers/net/wireless/ath/ath9k/htc.h +++ b/drivers/net/wireless/ath/ath9k/htc.h | |||
@@ -453,7 +453,6 @@ struct ath9k_htc_priv { | |||
453 | u8 num_sta_assoc_vif; | 453 | u8 num_sta_assoc_vif; |
454 | u8 num_ap_vif; | 454 | u8 num_ap_vif; |
455 | 455 | ||
456 | u16 op_flags; | ||
457 | u16 curtxpow; | 456 | u16 curtxpow; |
458 | u16 txpowlimit; | 457 | u16 txpowlimit; |
459 | u16 nvifs; | 458 | u16 nvifs; |
@@ -461,6 +460,7 @@ struct ath9k_htc_priv { | |||
461 | bool rearm_ani; | 460 | bool rearm_ani; |
462 | bool reconfig_beacon; | 461 | bool reconfig_beacon; |
463 | unsigned int rxfilter; | 462 | unsigned int rxfilter; |
463 | unsigned long op_flags; | ||
464 | 464 | ||
465 | struct ath9k_hw_cal_data caldata; | 465 | struct ath9k_hw_cal_data caldata; |
466 | struct ieee80211_supported_band sbands[IEEE80211_NUM_BANDS]; | 466 | struct ieee80211_supported_band sbands[IEEE80211_NUM_BANDS]; |
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c b/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c index 2eadffb7971c..77d541feb910 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c | |||
@@ -207,9 +207,9 @@ static void ath9k_htc_beacon_config_ap(struct ath9k_htc_priv *priv, | |||
207 | else | 207 | else |
208 | priv->ah->config.sw_beacon_response_time = MIN_SWBA_RESPONSE; | 208 | priv->ah->config.sw_beacon_response_time = MIN_SWBA_RESPONSE; |
209 | 209 | ||
210 | if (priv->op_flags & OP_TSF_RESET) { | 210 | if (test_bit(OP_TSF_RESET, &priv->op_flags)) { |
211 | ath9k_hw_reset_tsf(priv->ah); | 211 | ath9k_hw_reset_tsf(priv->ah); |
212 | priv->op_flags &= ~OP_TSF_RESET; | 212 | clear_bit(OP_TSF_RESET, &priv->op_flags); |
213 | } else { | 213 | } else { |
214 | /* | 214 | /* |
215 | * Pull nexttbtt forward to reflect the current TSF. | 215 | * Pull nexttbtt forward to reflect the current TSF. |
@@ -221,7 +221,7 @@ static void ath9k_htc_beacon_config_ap(struct ath9k_htc_priv *priv, | |||
221 | } while (nexttbtt < tsftu); | 221 | } while (nexttbtt < tsftu); |
222 | } | 222 | } |
223 | 223 | ||
224 | if (priv->op_flags & OP_ENABLE_BEACON) | 224 | if (test_bit(OP_ENABLE_BEACON, &priv->op_flags)) |
225 | imask |= ATH9K_INT_SWBA; | 225 | imask |= ATH9K_INT_SWBA; |
226 | 226 | ||
227 | ath_dbg(common, CONFIG, | 227 | ath_dbg(common, CONFIG, |
@@ -269,7 +269,7 @@ static void ath9k_htc_beacon_config_adhoc(struct ath9k_htc_priv *priv, | |||
269 | else | 269 | else |
270 | priv->ah->config.sw_beacon_response_time = MIN_SWBA_RESPONSE; | 270 | priv->ah->config.sw_beacon_response_time = MIN_SWBA_RESPONSE; |
271 | 271 | ||
272 | if (priv->op_flags & OP_ENABLE_BEACON) | 272 | if (test_bit(OP_ENABLE_BEACON, &priv->op_flags)) |
273 | imask |= ATH9K_INT_SWBA; | 273 | imask |= ATH9K_INT_SWBA; |
274 | 274 | ||
275 | ath_dbg(common, CONFIG, | 275 | ath_dbg(common, CONFIG, |
@@ -365,7 +365,7 @@ static void ath9k_htc_send_beacon(struct ath9k_htc_priv *priv, | |||
365 | vif = priv->cur_beacon_conf.bslot[slot]; | 365 | vif = priv->cur_beacon_conf.bslot[slot]; |
366 | avp = (struct ath9k_htc_vif *)vif->drv_priv; | 366 | avp = (struct ath9k_htc_vif *)vif->drv_priv; |
367 | 367 | ||
368 | if (unlikely(priv->op_flags & OP_SCANNING)) { | 368 | if (unlikely(test_bit(OP_SCANNING, &priv->op_flags))) { |
369 | spin_unlock_bh(&priv->beacon_lock); | 369 | spin_unlock_bh(&priv->beacon_lock); |
370 | return; | 370 | return; |
371 | } | 371 | } |
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_gpio.c b/drivers/net/wireless/ath/ath9k/htc_drv_gpio.c index 1c10e2e5c237..3688bbad87eb 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_gpio.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_gpio.c | |||
@@ -37,17 +37,18 @@ static void ath_detect_bt_priority(struct ath9k_htc_priv *priv) | |||
37 | 37 | ||
38 | if (time_after(jiffies, btcoex->bt_priority_time + | 38 | if (time_after(jiffies, btcoex->bt_priority_time + |
39 | msecs_to_jiffies(ATH_BT_PRIORITY_TIME_THRESHOLD))) { | 39 | msecs_to_jiffies(ATH_BT_PRIORITY_TIME_THRESHOLD))) { |
40 | priv->op_flags &= ~(OP_BT_PRIORITY_DETECTED | OP_BT_SCAN); | 40 | clear_bit(OP_BT_PRIORITY_DETECTED, &priv->op_flags); |
41 | clear_bit(OP_BT_SCAN, &priv->op_flags); | ||
41 | /* Detect if colocated bt started scanning */ | 42 | /* Detect if colocated bt started scanning */ |
42 | if (btcoex->bt_priority_cnt >= ATH_BT_CNT_SCAN_THRESHOLD) { | 43 | if (btcoex->bt_priority_cnt >= ATH_BT_CNT_SCAN_THRESHOLD) { |
43 | ath_dbg(ath9k_hw_common(ah), BTCOEX, | 44 | ath_dbg(ath9k_hw_common(ah), BTCOEX, |
44 | "BT scan detected\n"); | 45 | "BT scan detected\n"); |
45 | priv->op_flags |= (OP_BT_SCAN | | 46 | set_bit(OP_BT_PRIORITY_DETECTED, &priv->op_flags); |
46 | OP_BT_PRIORITY_DETECTED); | 47 | set_bit(OP_BT_SCAN, &priv->op_flags); |
47 | } else if (btcoex->bt_priority_cnt >= ATH_BT_CNT_THRESHOLD) { | 48 | } else if (btcoex->bt_priority_cnt >= ATH_BT_CNT_THRESHOLD) { |
48 | ath_dbg(ath9k_hw_common(ah), BTCOEX, | 49 | ath_dbg(ath9k_hw_common(ah), BTCOEX, |
49 | "BT priority traffic detected\n"); | 50 | "BT priority traffic detected\n"); |
50 | priv->op_flags |= OP_BT_PRIORITY_DETECTED; | 51 | set_bit(OP_BT_PRIORITY_DETECTED, &priv->op_flags); |
51 | } | 52 | } |
52 | 53 | ||
53 | btcoex->bt_priority_cnt = 0; | 54 | btcoex->bt_priority_cnt = 0; |
@@ -67,26 +68,23 @@ static void ath_btcoex_period_work(struct work_struct *work) | |||
67 | struct ath_btcoex *btcoex = &priv->btcoex; | 68 | struct ath_btcoex *btcoex = &priv->btcoex; |
68 | struct ath_common *common = ath9k_hw_common(priv->ah); | 69 | struct ath_common *common = ath9k_hw_common(priv->ah); |
69 | u32 timer_period; | 70 | u32 timer_period; |
70 | bool is_btscan; | ||
71 | int ret; | 71 | int ret; |
72 | 72 | ||
73 | ath_detect_bt_priority(priv); | 73 | ath_detect_bt_priority(priv); |
74 | 74 | ||
75 | is_btscan = !!(priv->op_flags & OP_BT_SCAN); | ||
76 | |||
77 | ret = ath9k_htc_update_cap_target(priv, | 75 | ret = ath9k_htc_update_cap_target(priv, |
78 | !!(priv->op_flags & OP_BT_PRIORITY_DETECTED)); | 76 | test_bit(OP_BT_PRIORITY_DETECTED, &priv->op_flags)); |
79 | if (ret) { | 77 | if (ret) { |
80 | ath_err(common, "Unable to set BTCOEX parameters\n"); | 78 | ath_err(common, "Unable to set BTCOEX parameters\n"); |
81 | return; | 79 | return; |
82 | } | 80 | } |
83 | 81 | ||
84 | ath9k_hw_btcoex_bt_stomp(priv->ah, is_btscan ? ATH_BTCOEX_STOMP_ALL : | 82 | ath9k_hw_btcoex_bt_stomp(priv->ah, test_bit(OP_BT_SCAN, &priv->op_flags) ? |
85 | btcoex->bt_stomp_type); | 83 | ATH_BTCOEX_STOMP_ALL : btcoex->bt_stomp_type); |
86 | 84 | ||
87 | ath9k_hw_btcoex_enable(priv->ah); | 85 | ath9k_hw_btcoex_enable(priv->ah); |
88 | timer_period = is_btscan ? btcoex->btscan_no_stomp : | 86 | timer_period = test_bit(OP_BT_SCAN, &priv->op_flags) ? |
89 | btcoex->btcoex_no_stomp; | 87 | btcoex->btscan_no_stomp : btcoex->btcoex_no_stomp; |
90 | ieee80211_queue_delayed_work(priv->hw, &priv->duty_cycle_work, | 88 | ieee80211_queue_delayed_work(priv->hw, &priv->duty_cycle_work, |
91 | msecs_to_jiffies(timer_period)); | 89 | msecs_to_jiffies(timer_period)); |
92 | ieee80211_queue_delayed_work(priv->hw, &priv->coex_period_work, | 90 | ieee80211_queue_delayed_work(priv->hw, &priv->coex_period_work, |
@@ -104,14 +102,15 @@ static void ath_btcoex_duty_cycle_work(struct work_struct *work) | |||
104 | struct ath_hw *ah = priv->ah; | 102 | struct ath_hw *ah = priv->ah; |
105 | struct ath_btcoex *btcoex = &priv->btcoex; | 103 | struct ath_btcoex *btcoex = &priv->btcoex; |
106 | struct ath_common *common = ath9k_hw_common(ah); | 104 | struct ath_common *common = ath9k_hw_common(ah); |
107 | bool is_btscan = priv->op_flags & OP_BT_SCAN; | ||
108 | 105 | ||
109 | ath_dbg(common, BTCOEX, "time slice work for bt and wlan\n"); | 106 | ath_dbg(common, BTCOEX, "time slice work for bt and wlan\n"); |
110 | 107 | ||
111 | if (btcoex->bt_stomp_type == ATH_BTCOEX_STOMP_LOW || is_btscan) | 108 | if (btcoex->bt_stomp_type == ATH_BTCOEX_STOMP_LOW || |
109 | test_bit(OP_BT_SCAN, &priv->op_flags)) | ||
112 | ath9k_hw_btcoex_bt_stomp(ah, ATH_BTCOEX_STOMP_NONE); | 110 | ath9k_hw_btcoex_bt_stomp(ah, ATH_BTCOEX_STOMP_NONE); |
113 | else if (btcoex->bt_stomp_type == ATH_BTCOEX_STOMP_ALL) | 111 | else if (btcoex->bt_stomp_type == ATH_BTCOEX_STOMP_ALL) |
114 | ath9k_hw_btcoex_bt_stomp(ah, ATH_BTCOEX_STOMP_LOW); | 112 | ath9k_hw_btcoex_bt_stomp(ah, ATH_BTCOEX_STOMP_LOW); |
113 | |||
115 | ath9k_hw_btcoex_enable(priv->ah); | 114 | ath9k_hw_btcoex_enable(priv->ah); |
116 | } | 115 | } |
117 | 116 | ||
@@ -141,7 +140,8 @@ static void ath_htc_resume_btcoex_work(struct ath9k_htc_priv *priv) | |||
141 | 140 | ||
142 | btcoex->bt_priority_cnt = 0; | 141 | btcoex->bt_priority_cnt = 0; |
143 | btcoex->bt_priority_time = jiffies; | 142 | btcoex->bt_priority_time = jiffies; |
144 | priv->op_flags &= ~(OP_BT_PRIORITY_DETECTED | OP_BT_SCAN); | 143 | clear_bit(OP_BT_PRIORITY_DETECTED, &priv->op_flags); |
144 | clear_bit(OP_BT_SCAN, &priv->op_flags); | ||
145 | ieee80211_queue_delayed_work(priv->hw, &priv->coex_period_work, 0); | 145 | ieee80211_queue_delayed_work(priv->hw, &priv->coex_period_work, 0); |
146 | } | 146 | } |
147 | 147 | ||
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c index cac6ff4cd14f..a035a380d669 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c | |||
@@ -611,7 +611,7 @@ static int ath9k_init_priv(struct ath9k_htc_priv *priv, | |||
611 | struct ath_common *common; | 611 | struct ath_common *common; |
612 | int i, ret = 0, csz = 0; | 612 | int i, ret = 0, csz = 0; |
613 | 613 | ||
614 | priv->op_flags |= OP_INVALID; | 614 | set_bit(OP_INVALID, &priv->op_flags); |
615 | 615 | ||
616 | ah = kzalloc(sizeof(struct ath_hw), GFP_KERNEL); | 616 | ah = kzalloc(sizeof(struct ath_hw), GFP_KERNEL); |
617 | if (!ah) | 617 | if (!ah) |
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c index 2b8f61c210e1..0fc0d35414c0 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c | |||
@@ -250,7 +250,7 @@ static int ath9k_htc_set_channel(struct ath9k_htc_priv *priv, | |||
250 | u8 cmd_rsp; | 250 | u8 cmd_rsp; |
251 | int ret; | 251 | int ret; |
252 | 252 | ||
253 | if (priv->op_flags & OP_INVALID) | 253 | if (test_bit(OP_INVALID, &priv->op_flags)) |
254 | return -EIO; | 254 | return -EIO; |
255 | 255 | ||
256 | fastcc = !!(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL); | 256 | fastcc = !!(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL); |
@@ -304,7 +304,7 @@ static int ath9k_htc_set_channel(struct ath9k_htc_priv *priv, | |||
304 | 304 | ||
305 | htc_start(priv->htc); | 305 | htc_start(priv->htc); |
306 | 306 | ||
307 | if (!(priv->op_flags & OP_SCANNING) && | 307 | if (!test_bit(OP_SCANNING, &priv->op_flags) && |
308 | !(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL)) | 308 | !(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL)) |
309 | ath9k_htc_vif_reconfig(priv); | 309 | ath9k_htc_vif_reconfig(priv); |
310 | 310 | ||
@@ -750,7 +750,7 @@ void ath9k_htc_start_ani(struct ath9k_htc_priv *priv) | |||
750 | common->ani.shortcal_timer = timestamp; | 750 | common->ani.shortcal_timer = timestamp; |
751 | common->ani.checkani_timer = timestamp; | 751 | common->ani.checkani_timer = timestamp; |
752 | 752 | ||
753 | priv->op_flags |= OP_ANI_RUNNING; | 753 | set_bit(OP_ANI_RUNNING, &priv->op_flags); |
754 | 754 | ||
755 | ieee80211_queue_delayed_work(common->hw, &priv->ani_work, | 755 | ieee80211_queue_delayed_work(common->hw, &priv->ani_work, |
756 | msecs_to_jiffies(ATH_ANI_POLLINTERVAL)); | 756 | msecs_to_jiffies(ATH_ANI_POLLINTERVAL)); |
@@ -759,7 +759,7 @@ void ath9k_htc_start_ani(struct ath9k_htc_priv *priv) | |||
759 | void ath9k_htc_stop_ani(struct ath9k_htc_priv *priv) | 759 | void ath9k_htc_stop_ani(struct ath9k_htc_priv *priv) |
760 | { | 760 | { |
761 | cancel_delayed_work_sync(&priv->ani_work); | 761 | cancel_delayed_work_sync(&priv->ani_work); |
762 | priv->op_flags &= ~OP_ANI_RUNNING; | 762 | clear_bit(OP_ANI_RUNNING, &priv->op_flags); |
763 | } | 763 | } |
764 | 764 | ||
765 | void ath9k_htc_ani_work(struct work_struct *work) | 765 | void ath9k_htc_ani_work(struct work_struct *work) |
@@ -944,7 +944,7 @@ static int ath9k_htc_start(struct ieee80211_hw *hw) | |||
944 | ath_dbg(common, CONFIG, | 944 | ath_dbg(common, CONFIG, |
945 | "Failed to update capability in target\n"); | 945 | "Failed to update capability in target\n"); |
946 | 946 | ||
947 | priv->op_flags &= ~OP_INVALID; | 947 | clear_bit(OP_INVALID, &priv->op_flags); |
948 | htc_start(priv->htc); | 948 | htc_start(priv->htc); |
949 | 949 | ||
950 | spin_lock_bh(&priv->tx.tx_lock); | 950 | spin_lock_bh(&priv->tx.tx_lock); |
@@ -973,7 +973,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw) | |||
973 | 973 | ||
974 | mutex_lock(&priv->mutex); | 974 | mutex_lock(&priv->mutex); |
975 | 975 | ||
976 | if (priv->op_flags & OP_INVALID) { | 976 | if (test_bit(OP_INVALID, &priv->op_flags)) { |
977 | ath_dbg(common, ANY, "Device not present\n"); | 977 | ath_dbg(common, ANY, "Device not present\n"); |
978 | mutex_unlock(&priv->mutex); | 978 | mutex_unlock(&priv->mutex); |
979 | return; | 979 | return; |
@@ -1015,7 +1015,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw) | |||
1015 | ath9k_htc_ps_restore(priv); | 1015 | ath9k_htc_ps_restore(priv); |
1016 | ath9k_htc_setpower(priv, ATH9K_PM_FULL_SLEEP); | 1016 | ath9k_htc_setpower(priv, ATH9K_PM_FULL_SLEEP); |
1017 | 1017 | ||
1018 | priv->op_flags |= OP_INVALID; | 1018 | set_bit(OP_INVALID, &priv->op_flags); |
1019 | 1019 | ||
1020 | ath_dbg(common, CONFIG, "Driver halt\n"); | 1020 | ath_dbg(common, CONFIG, "Driver halt\n"); |
1021 | mutex_unlock(&priv->mutex); | 1021 | mutex_unlock(&priv->mutex); |
@@ -1105,7 +1105,7 @@ static int ath9k_htc_add_interface(struct ieee80211_hw *hw, | |||
1105 | ath9k_htc_set_opmode(priv); | 1105 | ath9k_htc_set_opmode(priv); |
1106 | 1106 | ||
1107 | if ((priv->ah->opmode == NL80211_IFTYPE_AP) && | 1107 | if ((priv->ah->opmode == NL80211_IFTYPE_AP) && |
1108 | !(priv->op_flags & OP_ANI_RUNNING)) { | 1108 | !test_bit(OP_ANI_RUNNING, &priv->op_flags)) { |
1109 | ath9k_hw_set_tsfadjust(priv->ah, 1); | 1109 | ath9k_hw_set_tsfadjust(priv->ah, 1); |
1110 | ath9k_htc_start_ani(priv); | 1110 | ath9k_htc_start_ani(priv); |
1111 | } | 1111 | } |
@@ -1285,7 +1285,7 @@ static void ath9k_htc_configure_filter(struct ieee80211_hw *hw, | |||
1285 | changed_flags &= SUPPORTED_FILTERS; | 1285 | changed_flags &= SUPPORTED_FILTERS; |
1286 | *total_flags &= SUPPORTED_FILTERS; | 1286 | *total_flags &= SUPPORTED_FILTERS; |
1287 | 1287 | ||
1288 | if (priv->op_flags & OP_INVALID) { | 1288 | if (test_bit(OP_INVALID, &priv->op_flags)) { |
1289 | ath_dbg(ath9k_hw_common(priv->ah), ANY, | 1289 | ath_dbg(ath9k_hw_common(priv->ah), ANY, |
1290 | "Unable to configure filter on invalid state\n"); | 1290 | "Unable to configure filter on invalid state\n"); |
1291 | mutex_unlock(&priv->mutex); | 1291 | mutex_unlock(&priv->mutex); |
@@ -1517,7 +1517,7 @@ static void ath9k_htc_bss_info_changed(struct ieee80211_hw *hw, | |||
1517 | ath_dbg(common, CONFIG, "Beacon enabled for BSS: %pM\n", | 1517 | ath_dbg(common, CONFIG, "Beacon enabled for BSS: %pM\n", |
1518 | bss_conf->bssid); | 1518 | bss_conf->bssid); |
1519 | ath9k_htc_set_tsfadjust(priv, vif); | 1519 | ath9k_htc_set_tsfadjust(priv, vif); |
1520 | priv->op_flags |= OP_ENABLE_BEACON; | 1520 | set_bit(OP_ENABLE_BEACON, &priv->op_flags); |
1521 | ath9k_htc_beacon_config(priv, vif); | 1521 | ath9k_htc_beacon_config(priv, vif); |
1522 | } | 1522 | } |
1523 | 1523 | ||
@@ -1530,7 +1530,7 @@ static void ath9k_htc_bss_info_changed(struct ieee80211_hw *hw, | |||
1530 | ath_dbg(common, CONFIG, | 1530 | ath_dbg(common, CONFIG, |
1531 | "Beacon disabled for BSS: %pM\n", | 1531 | "Beacon disabled for BSS: %pM\n", |
1532 | bss_conf->bssid); | 1532 | bss_conf->bssid); |
1533 | priv->op_flags &= ~OP_ENABLE_BEACON; | 1533 | clear_bit(OP_ENABLE_BEACON, &priv->op_flags); |
1534 | ath9k_htc_beacon_config(priv, vif); | 1534 | ath9k_htc_beacon_config(priv, vif); |
1535 | } | 1535 | } |
1536 | } | 1536 | } |
@@ -1543,7 +1543,7 @@ static void ath9k_htc_bss_info_changed(struct ieee80211_hw *hw, | |||
1543 | (priv->nvifs == 1) && | 1543 | (priv->nvifs == 1) && |
1544 | (priv->num_ap_vif == 1) && | 1544 | (priv->num_ap_vif == 1) && |
1545 | (vif->type == NL80211_IFTYPE_AP)) { | 1545 | (vif->type == NL80211_IFTYPE_AP)) { |
1546 | priv->op_flags |= OP_TSF_RESET; | 1546 | set_bit(OP_TSF_RESET, &priv->op_flags); |
1547 | } | 1547 | } |
1548 | ath_dbg(common, CONFIG, | 1548 | ath_dbg(common, CONFIG, |
1549 | "Beacon interval changed for BSS: %pM\n", | 1549 | "Beacon interval changed for BSS: %pM\n", |
@@ -1655,7 +1655,7 @@ static void ath9k_htc_sw_scan_start(struct ieee80211_hw *hw) | |||
1655 | 1655 | ||
1656 | mutex_lock(&priv->mutex); | 1656 | mutex_lock(&priv->mutex); |
1657 | spin_lock_bh(&priv->beacon_lock); | 1657 | spin_lock_bh(&priv->beacon_lock); |
1658 | priv->op_flags |= OP_SCANNING; | 1658 | set_bit(OP_SCANNING, &priv->op_flags); |
1659 | spin_unlock_bh(&priv->beacon_lock); | 1659 | spin_unlock_bh(&priv->beacon_lock); |
1660 | cancel_work_sync(&priv->ps_work); | 1660 | cancel_work_sync(&priv->ps_work); |
1661 | ath9k_htc_stop_ani(priv); | 1661 | ath9k_htc_stop_ani(priv); |
@@ -1668,7 +1668,7 @@ static void ath9k_htc_sw_scan_complete(struct ieee80211_hw *hw) | |||
1668 | 1668 | ||
1669 | mutex_lock(&priv->mutex); | 1669 | mutex_lock(&priv->mutex); |
1670 | spin_lock_bh(&priv->beacon_lock); | 1670 | spin_lock_bh(&priv->beacon_lock); |
1671 | priv->op_flags &= ~OP_SCANNING; | 1671 | clear_bit(OP_SCANNING, &priv->op_flags); |
1672 | spin_unlock_bh(&priv->beacon_lock); | 1672 | spin_unlock_bh(&priv->beacon_lock); |
1673 | ath9k_htc_ps_wakeup(priv); | 1673 | ath9k_htc_ps_wakeup(priv); |
1674 | ath9k_htc_vif_reconfig(priv); | 1674 | ath9k_htc_vif_reconfig(priv); |
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c index 3e40a6461512..47e61d0da33b 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | |||
@@ -916,7 +916,7 @@ void ath9k_host_rx_init(struct ath9k_htc_priv *priv) | |||
916 | { | 916 | { |
917 | ath9k_hw_rxena(priv->ah); | 917 | ath9k_hw_rxena(priv->ah); |
918 | ath9k_htc_opmode_init(priv); | 918 | ath9k_htc_opmode_init(priv); |
919 | ath9k_hw_startpcureceive(priv->ah, (priv->op_flags & OP_SCANNING)); | 919 | ath9k_hw_startpcureceive(priv->ah, test_bit(OP_SCANNING, &priv->op_flags)); |
920 | priv->rx.last_rssi = ATH_RSSI_DUMMY_MARKER; | 920 | priv->rx.last_rssi = ATH_RSSI_DUMMY_MARKER; |
921 | } | 921 | } |
922 | 922 | ||