mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-21 11:13:30 +00:00
Enable STBC for the given rate series if it's negotiated:
* If both ends have negotiated (at least) one stream; * Only if it's a single stream rate (MCS0-7); * Only if there's more than one TX chain enabled. Tested: * AR9280 STA mode -> Atheros AP; tested both MCS2 (STBC) and MCS12 (no STBC.) Verified using athalq to inspect the TX descriptors. TODO: * Test AR5416 - no STBC should be enabled; * Test AR9280 with one TX chain enabled - no STBC should be enabled.
This commit is contained in:
parent
5df4935e7a
commit
1a3a560767
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=247368
@ -536,17 +536,30 @@ ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni,
|
||||
series[i].RateFlags |= HAL_RATESERIES_HALFGI;
|
||||
|
||||
/*
|
||||
* XXX TODO: STBC if it's possible
|
||||
* Setup rate and TX power cap for this series.
|
||||
*/
|
||||
series[i].Rate = rt->info[rc[i].rix].rateCode;
|
||||
series[i].RateIndex = rc[i].rix;
|
||||
series[i].tx_power_cap = 0x3f; /* XXX for now */
|
||||
|
||||
|
||||
/*
|
||||
* If we have STBC TX enabled and the receiver
|
||||
* can receive (at least) 1 stream STBC, AND it's
|
||||
* MCS 0-7, AND we have at least two chains enabled,
|
||||
* enable STBC.
|
||||
*/
|
||||
if (ic->ic_htcaps & IEEE80211_HTCAP_TXSTBC &&
|
||||
ni->ni_htcap & IEEE80211_HTCAP_RXSTBC_1STREAM &&
|
||||
(sc->sc_cur_txchainmask > 1) &&
|
||||
HT_RC_2_STREAMS(series[i].Rate) == 1) {
|
||||
series[i].RateFlags |= HAL_RATESERIES_STBC;
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX TODO: LDPC if it's possible
|
||||
*/
|
||||
|
||||
series[i].Rate = rt->info[rc[i].rix].rateCode;
|
||||
series[i].RateIndex = rc[i].rix;
|
||||
series[i].tx_power_cap = 0x3f; /* XXX for now */
|
||||
|
||||
/*
|
||||
* PktDuration doesn't include slot, ACK, RTS, etc timing -
|
||||
* it's just the packet duration
|
||||
|
Loading…
Reference in New Issue
Block a user