svn commit: r219588 - head/sys/dev/ath

Adrian Chadd adrian at FreeBSD.org
Sun Mar 13 08:23:59 UTC 2011


Author: adrian
Date: Sun Mar 13 08:23:59 2011
New Revision: 219588
URL: http://svn.freebsd.org/changeset/base/219588

Log:
  The number of streams is not based on the interface stream count, but the
  number of streams needed for that MCS rate.

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	Sun Mar 13 08:22:46 2011	(r219587)
+++ head/sys/dev/ath/if_ath_tx_ht.c	Sun Mar 13 08:23:59 2011	(r219588)
@@ -98,6 +98,7 @@ ath_rateseries_setup(struct ath_softc *s
     HAL_11N_RATE_SERIES *series, unsigned int pktlen, uint8_t *rix,
     uint8_t *try, int flags)
 {
+#define	HT_RC_2_STREAMS(_rc)	((((_rc) & 0x78) >> 3) + 1)
 	struct ieee80211com *ic = ni->ni_ic;
 	struct ath_hal *ah = sc->sc_ah;
 	HAL_BOOL shortPreamble = AH_FALSE;
@@ -151,14 +152,15 @@ ath_rateseries_setup(struct ath_softc *s
 			series[i].PktDuration =
 			    ath_computedur_ht(pktlen
 				, series[i].Rate
-				, ic->ic_txstream
-				, 0 /* disable 20/40 for now */
+				, HT_RC_2_STREAMS(series[i].Rate)
+				, series[i].RateFlags & HAL_RATESERIES_2040
 				, series[i].RateFlags & HAL_RATESERIES_HALFGI);
 		} else {
 			series[i].PktDuration = ath_hal_computetxtime(ah,
 			    rt, pktlen, rix[i], shortPreamble);
 		}
 	}
+#undef	HT_RC_2_STREAMS
 }
 
 #if 0


More information about the svn-src-all mailing list