[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.)
This commit is contained in:
Adrian Chadd 2016-04-26 01:34:21 +00:00
parent 6605a047e7
commit f026d6931a

View file

@ -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