madwifi: add some beacon setup/update related fixes (based on Bruno Randolf's patchset)
[openwrt/svn-archive/archive.git] / package / madwifi / patches / 376-beacon_update.patch
1 --- a/ath/if_ath.c
2 +++ b/ath/if_ath.c
3 @@ -5495,6 +5495,8 @@
4 ath_hal_intrset(ah, sc->sc_imask);
5 ath_set_beacon_cal(sc, 0);
6 } else {
7 + unsigned long flags;
8 +
9 ath_hal_intrset(ah, 0);
10 if (reset_tsf)
11 intval |= HAL_BEACON_RESET_TSF;
12 @@ -5514,11 +5516,14 @@
13 ath_beacon_dturbo_config(vap, intval &
14 ~(HAL_BEACON_RESET_TSF | HAL_BEACON_ENA));
15 #endif
16 + local_irq_save(flags);
17 if ((nexttbtt & HAL_BEACON_PERIOD) - (ath_hal_gettsf32(ah) >> 10)
18 <= ath_hal_sw_beacon_response_time)
19 nexttbtt += intval;
20 sc->sc_nexttbtt = nexttbtt;
21 ath_hal_beaconinit(ah, nexttbtt, intval);
22 + local_irq_restore(flags);
23 +
24 if (intval & HAL_BEACON_RESET_TSF) {
25 sc->sc_last_tsf = 0;
26 }