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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to