summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2016-04-26 01:34:21 +0000
committeradrian <adrian@FreeBSD.org>2016-04-26 01:34:21 +0000
commit4df8bc5383a0fc549716f386d3b5b25e235ab95a (patch)
tree151ce548f6aad065ba246e4fa0707fad63d04d87 /sys/dev
parent3807945a67cc2ad93ba386e2699e0eae27a84bcd (diff)
downloadFreeBSD-src-4df8bc5383a0fc549716f386d3b5b25e235ab95a.zip
FreeBSD-src-4df8bc5383a0fc549716f386d3b5b25e235ab95a.tar.gz
[ath] obey the STBC flag setting in iv_flags_ht
Add support for the FHT_STBC_TX flag in iv_flags_ht, so it'll now obey the per-vap ifconfig stbctx flag. This means that we can do STBC TX on one vap and not another VAP. (As well as STBC RX on said vap; that changes the HTCAP announcement.)
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ath/if_ath_tx_ht.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/dev/ath/if_ath_tx_ht.c b/sys/dev/ath/if_ath_tx_ht.c
index af0f779..a20607e 100644
--- a/sys/dev/ath/if_ath_tx_ht.c
+++ b/sys/dev/ath/if_ath_tx_ht.c
@@ -272,8 +272,11 @@ ath_tx_rate_fill_rcflags(struct ath_softc *sc, struct ath_buf *bf)
* can receive (at least) 1 stream STBC, AND it's
* MCS 0-7, AND we have at least two chains enabled,
* enable STBC.
+ *
+ * XXX TODO: .. and the rate is an 11n rate?
*/
if (ic->ic_htcaps & IEEE80211_HTCAP_TXSTBC &&
+ ni->ni_vap->iv_flags_ht & IEEE80211_FHT_STBC_TX &&
ni->ni_htcap & IEEE80211_HTCAP_RXSTBC_1STREAM &&
(sc->sc_cur_txchainmask > 1) &&
HT_RC_2_STREAMS(rate) == 1) {
@@ -281,10 +284,6 @@ ath_tx_rate_fill_rcflags(struct ath_softc *sc, struct ath_buf *bf)
}
/*
- * XXX TODO: LDPC
- */
-
- /*
* Dual / Triple stream rate?
*/
if (HT_RC_2_STREAMS(rate) == 2)
@@ -565,6 +564,12 @@ ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni,
}
/*
+ * TODO: If we're all doing 11n rates then we can set LDPC.
+ * If we've been asked to /do/ LDPC but we are handed a
+ * legacy rate, then we should complain. Loudly.
+ */
+
+ /*
* PktDuration doesn't include slot, ACK, RTS, etc timing -
* it's just the packet duration
*/
OpenPOWER on IntegriCloud