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

Adrian Chadd adrian at FreeBSD.org
Sat Feb 9 02:42:02 UTC 2013


Author: adrian
Date: Sat Feb  9 02:42:01 2013
New Revision: 246579
URL: http://svnweb.freebsd.org/changeset/base/246579

Log:
  The encryption type field needs to be preserved for each descriptor
  making up a frame, in both a sub-frame and for all frames in an
  aggregate.
  
  Tested:
  
  * AR5416, STA mode

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 Feb  9 01:41:21 2013	(r246578)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c	Sat Feb  9 02:42:01 2013	(r246579)
@@ -306,10 +306,14 @@ ar5416FillTxDesc(struct ath_hal *ah, str
 		    & AR_TxIntrReq;
 		ads->ds_ctl2 = __bswap32(AR5416DESC_CONST(ds0)->ds_ctl2);
 		ads->ds_ctl3 = __bswap32(AR5416DESC_CONST(ds0)->ds_ctl3);
+		/* ctl6 - we only need encrtype; the rest are blank */
+		ads->ds_ctl6 = __bswap32(AR5416DESC_CONST(ds0)->ds_ctl6 & AR_EncrType);
 #else
 		ads->ds_ctl0 = AR5416DESC_CONST(ds0)->ds_ctl0 & AR_TxIntrReq;
 		ads->ds_ctl2 = AR5416DESC_CONST(ds0)->ds_ctl2;
 		ads->ds_ctl3 = AR5416DESC_CONST(ds0)->ds_ctl3;
+		/* ctl6 - we only need encrtype; the rest are blank */
+		ads->ds_ctl6 = AR5416DESC_CONST(ds0)->ds_ctl6 & AR_EncrType;
 #endif
 	} else {			/* !firstSeg && !lastSeg */
 		/*
@@ -318,8 +322,10 @@ ar5416FillTxDesc(struct ath_hal *ah, str
 #ifdef AH_NEED_DESC_SWAP
 		ads->ds_ctl0 = __bswap32(AR5416DESC_CONST(ds0)->ds_ctl0)
 		    & AR_TxIntrReq;
+		ads->ds_ctl6 = __bswap32(AR5416DESC_CONST(ds0)->ds_ctl6 & AR_EncrType);
 #else
 		ads->ds_ctl0 = AR5416DESC_CONST(ds0)->ds_ctl0 & AR_TxIntrReq;
+		ads->ds_ctl6 = AR5416DESC_CONST(ds0)->ds_ctl6 & AR_EncrType;
 #endif
 		ads->ds_ctl1 = segLen | AR_TxMore;
 		ads->ds_ctl2 = 0;


More information about the svn-src-all mailing list