aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2011-02-05 22:54:37 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2011-02-05 22:54:37 +0000
commitc7ff3cee42e9825ad478557d78dfae3607b385de (patch)
tree36f403a7d94ca9db37bdec1173f7c08aac35977a /sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
parent8bcbc83bdfdb5fd3b93a811bdfe67c6fca2c4bab (diff)
downloadsrc-c7ff3cee42e9825ad478557d78dfae3607b385de.tar.gz
src-c7ff3cee42e9825ad478557d78dfae3607b385de.zip
Notes
Diffstat (limited to 'sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c')
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c b/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
index b3597dee2e16..945c58253a12 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
@@ -621,6 +621,20 @@ ar5416Set11nRateScenario(struct ath_hal *ah, struct ath_desc *ds,
(void)nseries;
/*
+ * XXX since the upper layers doesn't know the current chainmask
+ * XXX setup, just override its decisions here.
+ * XXX The upper layers need to be taught this!
+ */
+ if (series[0].Tries != 0)
+ series[0].ChSel = AH5416(ah)->ah_tx_chainmask;
+ if (series[1].Tries != 0)
+ series[1].ChSel = AH5416(ah)->ah_tx_chainmask;
+ if (series[2].Tries != 0)
+ series[2].ChSel = AH5416(ah)->ah_tx_chainmask;
+ if (series[3].Tries != 0)
+ series[3].ChSel = AH5416(ah)->ah_tx_chainmask;
+
+ /*
* Only one of RTS and CTS enable must be set.
* If a frame has both set, just do RTS protection -
* that's enough to satisfy legacy protection.
@@ -642,7 +656,6 @@ ar5416Set11nRateScenario(struct ath_hal *ah, struct ath_desc *ds,
(ads->ds_ctl0 & ~(AR_RTSEnable | AR_CTSEnable));
}
-
ads->ds_ctl2 = set11nTries(series, 0)
| set11nTries(series, 1)
| set11nTries(series, 2)