Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Nov 2012 22:13:42 +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: r242528 - head/sys/dev/ath
Message-ID:  <201211032213.qA3MDgEr054895@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Sat Nov  3 22:13:42 2012
New Revision: 242528
URL: http://svn.freebsd.org/changeset/base/242528

Log:
  For AR9380 NICs - the non-enterprise versions don't support RTS protection
  of small (< 256 byte) aggregate frames.
  
  This needs to be done or 11n aggregation TX just simply doesn't work
  on these NICs.
  
  Whilst here, extend some debug printing; I was using this whilst
  debugging the TX power setup in the TX descriptor(s) on the AR9380.

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

Modified: head/sys/dev/ath/if_ath_tx_ht.c
==============================================================================
--- head/sys/dev/ath/if_ath_tx_ht.c	Sat Nov  3 22:12:35 2012	(r242527)
+++ head/sys/dev/ath/if_ath_tx_ht.c	Sat Nov  3 22:13:42 2012	(r242528)
@@ -349,6 +349,14 @@ ath_compute_num_delims(struct ath_softc 
 	 */
 	ndelim += ATH_AGGR_ENCRYPTDELIM;
 
+	/*
+	 * For AR9380, there's a minimum number of delimeters
+	 * required when doing RTS.
+	 */
+	if (sc->sc_use_ent && (sc->sc_ent_cfg & AH_ENT_RTSCTS_DELIM_WAR)
+	    && ndelim < AH_FIRST_DESC_NDELIMS)
+		ndelim = AH_FIRST_DESC_NDELIMS;
+
 	DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR,
 	    "%s: pktlen=%d, ndelim=%d, mpdudensity=%d\n",
 	    __func__, pktlen, ndelim, mpdudensity);
@@ -542,12 +550,13 @@ ath_rateseries_print(struct ath_softc *s
 	int i;
 	for (i = 0; i < ATH_RC_NUM; i++) {
 		device_printf(sc->sc_dev ,"series %d: rate %x; tries %d; "
-		    "pktDuration %d; chSel %d; rateFlags %x\n",
+		    "pktDuration %d; chSel %d; txpowcap %d, rateFlags %x\n",
 		    i,
 		    series[i].Rate,
 		    series[i].Tries,
 		    series[i].PktDuration,
 		    series[i].ChSel,
+		    series[i].tx_power_cap,
 		    series[i].RateFlags);
 	}
 }
@@ -577,7 +586,6 @@ ath_buf_set_rate(struct ath_softc *sc, s
 	ath_rateseries_setup(sc, ni, bf, series);
 
 #if 0
-	printf("pktlen: %d; flags 0x%x\n", pktlen, flags);
 	ath_rateseries_print(sc, series);
 #endif
 



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