diff options
author | Sujith Manoharan <c_manoha@qca.qualcomm.com> | 2013-05-06 06:39:03 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-05-08 23:15:07 +0200 |
commit | a67682804165c428d5fd52c1a70fcd2a7502c056 (patch) | |
tree | 2fa66924388212fad1006acca0dfad6e90f7ed70 | |
parent | iwl4965: workaround connection regression on passive channel (diff) | |
download | linux-a67682804165c428d5fd52c1a70fcd2a7502c056.tar.xz linux-a67682804165c428d5fd52c1a70fcd2a7502c056.zip |
ath9k: Fix beacon reconfiguration
When a reset or a channel-change happens, for managed mode,
the HW beacon timers have to be programmed after the TSF has
been synchronized. This is handled via the sync flags.
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index c4fc3d14ea62..a18414b5948b 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c @@ -227,13 +227,13 @@ static bool ath_complete_reset(struct ath_softc *sc, bool start) if (!test_bit(SC_OP_BEACONS, &sc->sc_flags)) goto work; - ath9k_set_beacon(sc); - if (ah->opmode == NL80211_IFTYPE_STATION && test_bit(SC_OP_PRIM_STA_VIF, &sc->sc_flags)) { spin_lock_irqsave(&sc->sc_pm_lock, flags); sc->ps_flags |= PS_BEACON_SYNC | PS_WAIT_FOR_BEACON; spin_unlock_irqrestore(&sc->sc_pm_lock, flags); + } else { + ath9k_set_beacon(sc); } work: ath_restart_work(sc); |