1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-28 11:57:28 +00:00

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
This commit is contained in:
Adrian Chadd 2013-03-23 23:51:11 +00:00
parent 8e787d67be
commit 49ddabc4bd
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=248670

View File

@ -1191,10 +1191,10 @@ ar5416ResetTxQueue(struct ath_hal *ah, u_int q)
* 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