| 1 | --- a/ath/if_ath.c |
| 2 | +++ b/ath/if_ath.c |
| 3 | @@ -5486,6 +5486,9 @@ ath_beacon_config(struct ath_softc *sc, |
| 4 | ath_beacon_dturbo_config(vap, intval & |
| 5 | ~(HAL_BEACON_RESET_TSF | HAL_BEACON_ENA)); |
| 6 | #endif |
| 7 | + if ((nexttbtt & HAL_BEACON_PERIOD) - (ath_hal_gettsf32(ah) >> 10) |
| 8 | + <= ath_hal_sw_beacon_response_time) |
| 9 | + nexttbtt += intval; |
| 10 | sc->sc_nexttbtt = nexttbtt; |
| 11 | ath_hal_beaconinit(ah, nexttbtt, intval); |
| 12 | if (intval & HAL_BEACON_RESET_TSF) { |
| 13 | --- a/ath_hal/ah_os.c |
| 14 | +++ b/ath_hal/ah_os.c |
| 15 | @@ -71,6 +71,7 @@ static int ath_hal_debug = 99; |
| 16 | int ath_hal_dma_beacon_response_time = 2; /* in TUs */ |
| 17 | int ath_hal_sw_beacon_response_time = 10; /* in TUs */ |
| 18 | int ath_hal_additional_swba_backoff = 0; /* in TUs */ |
| 19 | +EXPORT_SYMBOL(ath_hal_sw_beacon_response_time); |
| 20 | |
| 21 | struct ath_hal * |
| 22 | _ath_hal_attach(u_int16_t devid, HAL_SOFTC sc, |
| 23 | |