svn commit: r225734 - in user/adrian/if_ath_tx/sys/dev/ath: . ath_hal ath_hal/ar5416

Adrian Chadd adrian at FreeBSD.org
Thu Sep 22 22:52:24 UTC 2011


Author: adrian
Date: Thu Sep 22 22:52:24 2011
New Revision: 225734
URL: http://svn.freebsd.org/changeset/base/225734

Log:
  Now that I've found the root cause missing TX interrupt issue, revert
  this previous commit.

Modified:
  user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah.h
  user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416.h
  user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
  user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
  user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h

Modified: user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah.h
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah.h	Thu Sep 22 22:08:09 2011	(r225733)
+++ user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah.h	Thu Sep 22 22:52:24 2011	(r225734)
@@ -1001,7 +1001,7 @@ struct ath_hal {
 
 	/* 802.11n Functions */
 	HAL_BOOL  __ahdecl(*ah_chainTxDesc)(struct ath_hal *,
-				struct ath_desc *, u_int, u_int, u_int,
+				struct ath_desc *, u_int, u_int,
 				HAL_PKT_TYPE, u_int, HAL_CIPHER, uint8_t,
 				u_int, HAL_BOOL, HAL_BOOL);
 	HAL_BOOL  __ahdecl(*ah_setupFirstTxDesc)(struct ath_hal *,

Modified: user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416.h
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416.h	Thu Sep 22 22:08:09 2011	(r225733)
+++ user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416.h	Thu Sep 22 22:52:24 2011	(r225734)
@@ -330,7 +330,7 @@ extern	int ar5416SetupTxQueue(struct ath
 	        const HAL_TXQ_INFO *qInfo);
 
 extern	HAL_BOOL ar5416ChainTxDesc(struct ath_hal *ah, struct ath_desc *ds,
-		u_int flags, u_int pktLen, u_int hdrLen, HAL_PKT_TYPE type, u_int keyIx,
+		u_int pktLen, u_int hdrLen, HAL_PKT_TYPE type, u_int keyIx,
 		HAL_CIPHER cipher, uint8_t delims, u_int segLen, HAL_BOOL firstSeg,
 		HAL_BOOL lastSeg);
 extern	HAL_BOOL ar5416SetupFirstTxDesc(struct ath_hal *ah, struct ath_desc *ds,

Modified: user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c	Thu Sep 22 22:08:09 2011	(r225733)
+++ user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c	Thu Sep 22 22:52:24 2011	(r225734)
@@ -338,7 +338,6 @@ ar5416FillTxDesc(struct ath_hal *ah, str
  */
 HAL_BOOL
 ar5416ChainTxDesc(struct ath_hal *ah, struct ath_desc *ds,
-	u_int flags,
 	u_int pktLen,
 	u_int hdrLen,
 	HAL_PKT_TYPE type,
@@ -380,7 +379,7 @@ ar5416ChainTxDesc(struct ath_hal *ah, st
 	/*
 	 * Note: VEOL should only be for the last descriptor in the chain.
 	 */
-	ads->ds_ctl0 = 0;	/* XXX TODO: optimise uncached descriptor writes */
+	ads->ds_ctl0 = (pktLen & AR_FrameLen);
 	ads->ds_ctl1 = (type << AR_FrameType_S)
 			| (isaggr ? (AR_IsAggr | AR_MoreAggr) : 0);
 	ads->ds_ctl2 = 0;
@@ -397,24 +396,15 @@ ar5416ChainTxDesc(struct ath_hal *ah, st
 	}
 
 	if (firstSeg) {
-		ads->ds_ctl0 |= (pktLen & AR_FrameLen)
-		    | (flags & HAL_TXDESC_CLRDMASK ? AR_ClrDestMask : 0)
-		    | (flags & HAL_TXDESC_INTREQ ? AR_TxIntrReq : 0)
-		    ;
 		ads->ds_ctl1 |= segLen | (lastSeg ? 0 : AR_TxMore);
 	} else if (lastSeg) {           /* !firstSeg && lastSeg */
-		ads->ds_ctl0 = 0
-		    | (flags & HAL_TXDESC_VEOL ? AR_VEOL : 0)
-		    | (flags & HAL_TXDESC_INTREQ ? AR_TxIntrReq : 0)
-		    ;
+		ads->ds_ctl0 = 0;
 		ads->ds_ctl1 |= segLen;
 	} else {                        /* !firstSeg && !lastSeg */
 		/*
 		 * Intermediate descriptor in a multi-descriptor frame.
 		 */
-		ads->ds_ctl0 = 0
-		    | (flags & HAL_TXDESC_INTREQ ? AR_TxIntrReq : 0)
-		    ;
+		ads->ds_ctl0 = 0;
 		ads->ds_ctl1 |= segLen | AR_TxMore;
 	}
 	ds_txstatus[0] = ds_txstatus[1] = 0;

Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c	Thu Sep 22 22:08:09 2011	(r225733)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c	Thu Sep 22 22:52:24 2011	(r225734)
@@ -355,7 +355,6 @@ ath_tx_chaindesclist_subframe(struct ath
 		 * This includes enabling the aggregate flags if needed.
 		 */
 		ath_hal_chaintxdesc(ah, ds,
-		    bf->bf_state.bfs_flags | HAL_TXDESC_INTREQ,
 		    bf->bf_state.bfs_pktlen,
 		    bf->bf_state.bfs_hdrlen,
 		    HAL_PKT_TYPE_AMPDU,	/* forces aggregate bits to be set */

Modified: user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h	Thu Sep 22 22:08:09 2011	(r225733)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h	Thu Sep 22 22:52:24 2011	(r225734)
@@ -847,9 +847,9 @@ void	ath_intr(void *);
 		_txr0, _txtr0, _antm, _rcr, _rcd) \
 	((*(_ah)->ah_setupFirstTxDesc)((_ah), (_ds), (_aggrlen), (_flags), \
 	(_txpower), (_txr0), (_txtr0), (_antm), (_rcr), (_rcd)))
-#define	ath_hal_chaintxdesc(_ah, _ds, _flags, _pktlen, _hdrlen, _type, _keyix, \
+#define	ath_hal_chaintxdesc(_ah, _ds, _pktlen, _hdrlen, _type, _keyix, \
 	_cipher, _delims, _seglen, _first, _last) \
-	((*(_ah)->ah_chainTxDesc)((_ah), (_ds), (_flags), (_pktlen), (_hdrlen), \
+	((*(_ah)->ah_chainTxDesc)((_ah), (_ds), (_pktlen), (_hdrlen), \
 	(_type), (_keyix), (_cipher), (_delims), (_seglen), \
 	(_first), (_last)))
 #define	ath_hal_setuplasttxdesc(_ah, _ds, _ds0) \


More information about the svn-src-user mailing list