svn commit: r218131 - head/sys/dev/ath/ath_hal/ar5416

Adrian Chadd adrian at FreeBSD.org
Mon Jan 31 15:42:43 UTC 2011


Author: adrian
Date: Mon Jan 31 15:42:42 2011
New Revision: 218131
URL: http://svn.freebsd.org/changeset/base/218131

Log:
  Don't incorrectly set the burst duration setting in the TX descriptor.
  
  After inspecting the ath9k source, it seems the AR5416 and later MACs
  don't take an explicit RTS/CTS duration. A per-scenario (ie, what multi-
  rate retry became) rts/cts control flag and packet duration is provided;
  the hardware then apparently fills in whatever details are required.
  The per-rate sp/lpack duration calculation just isn't used anywhere
  in the ath9k TX packet length calculations.
  
  The burst duration register controls something different; it seems to
  be involved with RTS/CTS protection of 11n aggregate frames and is set
  via a call to ar5416Set11nBurstDuration().
  
  I've done some light testing with rts/cts protected frames and nothing
  seems to break; but this may break said RTS/CTS and CTS-to-self protection.

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	Mon Jan 31 15:17:47 2011	(r218130)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c	Mon Jan 31 15:42:42 2011	(r218131)
@@ -227,7 +227,6 @@ ar5416SetupTxDesc(struct ath_hal *ah, st
 		ads->ds_ctl0 |= (flags & HAL_TXDESC_CTSENA ? AR_CTSEnable : 0)
 			     | (flags & HAL_TXDESC_RTSENA ? AR_RTSEnable : 0)
 			     ;
-		ads->ds_ctl2 |= SM(rtsctsDuration, AR_BurstDur);
 		ads->ds_ctl7 |= (rtsctsRate << AR_RTSCTSRate_S);
 	}
 
@@ -421,7 +420,6 @@ ar5416SetupFirstTxDesc(struct ath_hal *a
 		/* XXX validate rtsctsDuration */
 		ads->ds_ctl0 |= (flags & HAL_TXDESC_CTSENA ? AR_CTSEnable : 0)
 			| (flags & HAL_TXDESC_RTSENA ? AR_RTSEnable : 0);
-		ads->ds_ctl2 |= SM(rtsctsDuration, AR_BurstDur);
 	}
 
 	if (AR_SREV_KITE(ah)) {


More information about the svn-src-all mailing list