diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-06-11 14:48:04 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-06-19 23:49:19 +0400 |
commit | 748299f27b21c23ba963df4768abb2344fe6e9a7 (patch) | |
tree | 58ef92baf9db145fc2b1ed3f722d37b4280dd729 /drivers/net/wireless/ath/ath9k/beacon.c | |
parent | 9a9c4fbc3fcabc0d510600743204f890ebdbb141 (diff) | |
download | linux-748299f27b21c23ba963df4768abb2344fe6e9a7.tar.xz |
ath9k: switch channel context for beaconing
Add a basic state machine for switch channel context
for beacon transmission.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/beacon.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/beacon.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c index d3553927c6dd..5b1689cf029a 100644 --- a/drivers/net/wireless/ath/ath9k/beacon.c +++ b/drivers/net/wireless/ath/ath9k/beacon.c @@ -374,12 +374,19 @@ void ath9k_beacon_tasklet(unsigned long data) vif = sc->beacon.bslot[slot]; /* EDMA devices check that in the tx completion function. */ - if (!edma && ath9k_csa_is_finished(sc, vif)) - return; + if (!edma) { + if (sc->sched.beacon_pending) + ath_chanctx_event(sc, NULL, + ATH_CHANCTX_EVENT_BEACON_SENT); + + if (ath9k_csa_is_finished(sc, vif)) + return; + } if (!vif || !vif->bss_conf.enable_beacon) return; + ath_chanctx_event(sc, vif, ATH_CHANCTX_EVENT_BEACON_PREPARE); bf = ath9k_beacon_generate(sc->hw, vif); if (sc->beacon.bmisscnt != 0) { |