From f026d6931a01b46883f2292f2d431aa66aee5ee5 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Tue, 26 Apr 2016 01:34:21 +0000 Subject: [PATCH] [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.) --- sys/dev/ath/if_ath_tx_ht.c | 13 +++++++++---- 1 file 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 af0f77975d9..a20607e3b86 100644 --- a/sys/dev/ath/if_ath_tx_ht.c +++ b/sys/dev/ath/if_ath_tx_ht.c @@ -272,18 +272,17 @@ 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) { rc[i].flags |= ATH_RC_STBC_FLAG; } - /* - * XXX TODO: LDPC - */ - /* * Dual / Triple stream rate? */ @@ -564,6 +563,12 @@ ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni, series[i].RateFlags |= HAL_RATESERIES_STBC; } + /* + * 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