svn commit: r248670 - head/sys/dev/ath/ath_hal/ar5416
Adrian Chadd
adrian at FreeBSD.org
Sat Mar 23 23:51:12 UTC 2013
Author: adrian
Date: Sat Mar 23 23:51:11 2013
New Revision: 248670
URL: http://svnweb.freebsd.org/changeset/base/248670
Log:
CABQ calculation changes to try and fix some weird corner cases leading
to stuck beacons.
* Set the cabq readytime (ie, how long to burst for) to 50% of the total
beacon interval time
* fix the cabq adjustment calculation based on how the beacon offset is
calculated (the SWBA/DBA time offset.)
This is all still a bit magic voodoo but it does seem to have further
quietened issues with missed/stuck beacons under my local testing.
In any case, it better matches what the reference HAL implements.
Obtained from: Qualcomm Atheros
Modified:
head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c Sat Mar 23 23:27:16 2013 (r248669)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c Sat Mar 23 23:51:11 2013 (r248670)
@@ -1191,10 +1191,10 @@ ar5416ResetTxQueue(struct ath_hal *ah, u
* XXX which I gather is because of such a long
* XXX cabq time.)
*/
- value = (ahp->ah_beaconInterval * 70 / 100)
- - (ah->ah_config.ah_sw_beacon_response_time
- + ah->ah_config.ah_dma_beacon_response_time)
- - ah->ah_config.ah_additional_swba_backoff;
+ value = (ahp->ah_beaconInterval * 50 / 100)
+ - ah->ah_config.ah_additional_swba_backoff
+ - ah->ah_config.ah_sw_beacon_response_time
+ + ah->ah_config.ah_dma_beacon_response_time;
/*
* XXX Ensure it isn't too low - nothing lower
* XXX than 10 TU
More information about the svn-src-head
mailing list