23 lines
826 B
Diff
23 lines
826 B
Diff
--- a/ath/if_ath.c
|
|
+++ b/ath/if_ath.c
|
|
@@ -5484,6 +5484,9 @@ ath_beacon_config(struct ath_softc *sc,
|
|
ath_beacon_dturbo_config(vap, intval &
|
|
~(HAL_BEACON_RESET_TSF | HAL_BEACON_ENA));
|
|
#endif
|
|
+ if ((nexttbtt & HAL_BEACON_PERIOD) - (ath_hal_gettsf32(ah) >> 10)
|
|
+ <= ath_hal_sw_beacon_response_time)
|
|
+ nexttbtt += intval;
|
|
sc->sc_nexttbtt = nexttbtt;
|
|
ath_hal_beaconinit(ah, nexttbtt, intval);
|
|
if (intval & HAL_BEACON_RESET_TSF) {
|
|
--- a/ath_hal/ah_os.c
|
|
+++ b/ath_hal/ah_os.c
|
|
@@ -71,6 +71,7 @@ static int ath_hal_debug = 99;
|
|
int ath_hal_dma_beacon_response_time = 2; /* in TUs */
|
|
int ath_hal_sw_beacon_response_time = 10; /* in TUs */
|
|
int ath_hal_additional_swba_backoff = 0; /* in TUs */
|
|
+EXPORT_SYMBOL(ath_hal_sw_beacon_response_time);
|
|
|
|
struct ath_hal *
|
|
_ath_hal_attach(u_int16_t devid, HAL_SOFTC sc,
|