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