summaryrefslogtreecommitdiff
path: root/sys/dev/ath/if_ath.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ath/if_ath.c')
-rw-r--r--sys/dev/ath/if_ath.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index a789f5ea2984..5628addc33aa 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -1236,7 +1236,16 @@ ath_resume(struct ath_softc *sc)
if (sc->sc_resume_up) {
if (ic->ic_opmode == IEEE80211_M_STA) {
ath_init(sc);
- ieee80211_beacon_miss(ic);
+ /*
+ * Program the beacon registers using the last rx'd
+ * beacon frame and enable sync on the next beacon
+ * we see. This should handle the case where we
+ * wakeup and find the same AP and also the case where
+ * we wakeup and need to roam. For the latter we
+ * should get bmiss events that trigger a roam.
+ */
+ ath_beacon_config(sc, NULL);
+ sc->sc_syncbeacon = 1;
} else
ieee80211_resume_all(ic);
}