Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Mar 2013 04:48:58 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r248714 - head/sys/dev/ath
Message-ID:  <201303260448.r2Q4mwRp008572@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Tue Mar 26 04:48:58 2013
New Revision: 248714
URL: http://svnweb.freebsd.org/changeset/base/248714

Log:
  Convert the EDMA multicast queue code over to use the HAL method to set
  the descriptor link pointer, rather than directly.
  
  This is needed on AR9380 and later (ie, EDMA) NICs so the multicast queue
  has a chance in hell of being put together right.
  
  Tested:
  
  * AR9380, AR9580 in hostap mode, CABQ traffic (but with other patches..)

Modified:
  head/sys/dev/ath/if_ath_tx_edma.c

Modified: head/sys/dev/ath/if_ath_tx_edma.c
==============================================================================
--- head/sys/dev/ath/if_ath_tx_edma.c	Tue Mar 26 04:47:40 2013	(r248713)
+++ head/sys/dev/ath/if_ath_tx_edma.c	Tue Mar 26 04:48:58 2013	(r248714)
@@ -249,7 +249,7 @@ ath_edma_xmit_handoff_mcast(struct ath_s
     struct ath_buf *bf)
 {
 
-	ATH_TXQ_LOCK_ASSERT(txq);
+	ATH_TX_LOCK_ASSERT(sc);
 	KASSERT((bf->bf_flags & ATH_BUF_BUSY) == 0,
 	    ("%s: busy status 0x%x", __func__, bf->bf_flags));
 
@@ -257,7 +257,7 @@ ath_edma_xmit_handoff_mcast(struct ath_s
 	/*
 	 * XXX this is mostly duplicated in ath_tx_handoff_mcast().
 	 */
-	if (ATH_TXQ_FIRST(txq) != NULL) {
+	if (ATH_TXQ_LAST(txq, axq_q_s) != NULL) {
 		struct ath_buf *bf_last = ATH_TXQ_LAST(txq, axq_q_s);
 		struct ieee80211_frame *wh;
 
@@ -270,7 +270,9 @@ ath_edma_xmit_handoff_mcast(struct ath_s
 		   BUS_DMASYNC_PREWRITE);
 
 		/* link descriptor */
-		*txq->axq_link = bf->bf_daddr;
+		ath_hal_settxdesclink(sc->sc_ah,
+		    bf_last->bf_lastds,
+		    bf->bf_daddr);
 	}
 
 #ifdef	ATH_DEBUG_ALQ



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201303260448.r2Q4mwRp008572>