summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/ath9k.h
diff options
context:
space:
mode:
authorSujith Manoharan <c_manoha@qca.qualcomm.com>2014-09-05 09:50:57 +0530
committerJohn W. Linville <linville@tuxdriver.com>2014-09-09 15:27:22 -0400
commit367b341edbebc405d80fecd28ff973dfb7390d65 (patch)
tree3d467024f0df09bbb63bda62dbdb0adfa6aa2bd6 /drivers/net/wireless/ath/ath9k/ath9k.h
parentda0162f3f0012465cc6d77c4d416fabb182713ad (diff)
downloadlinux-367b341edbebc405d80fecd28ff973dfb7390d65.tar.gz
linux-367b341edbebc405d80fecd28ff973dfb7390d65.tar.bz2
linux-367b341edbebc405d80fecd28ff973dfb7390d65.zip
ath9k: Fix MCC scanning
Scanning is curently broken when two channel contexts are active. For example in a P2P-GO/STA setup, the offchannel timer allows HZ / 10 to elapse before initiating a switch to the next scan channel from the current operating channel, which in this case would be the P2P-GO context. But, the channel context timer might decide to switch to the STA context when an SWBA comes early and a beacon is sent out. Since pending offchannel requests are processed in EVENT_BEACON_PREPARE, this causes inconsistent scanning. Fix this by making sure that a context switch happens before processing the pending offchannel request. This also makes sure that active channel contexts will always have higher priority than offchannel operations and the scan sequence looks like this: p2p-go, sta, p2p-go, offchannel, p2p-go, sta, p2p-go, offchannel,..... The oper-channel is p2p-go, so the STA context has to switch to p2p-go again before switching offchannel. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ath9k.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 46a1d2e24dae..0c071b094010 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -378,6 +378,7 @@ enum ath_chanctx_state {
struct ath_chanctx_sched {
bool beacon_pending;
bool offchannel_pending;
+ bool wait_switch;
enum ath_chanctx_state state;
u8 beacon_miss;