23 lines
		
	
	
		
			826 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			826 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/ath/if_ath.c
 | 
						|
+++ b/ath/if_ath.c
 | 
						|
@@ -5486,6 +5486,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,
 |