From 36fc80b53e195491198066e9b73d7ef596a018b5 Mon Sep 17 00:00:00 2001 From: Alexander Egorenkov Date: Thu, 4 Mar 2010 09:47:34 +0100 Subject: [PATCH] Tx HT frames with STBC only if we have 2 or more Tx antennas --- rt2870.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rt2870.c b/rt2870.c index 3b70b85..566ef68 100644 --- a/rt2870.c +++ b/rt2870.c @@ -4117,7 +4117,8 @@ static int rt2870_tx_mgmt(struct rt2870_softc *sc, RT2870_TXWI_PID_SHIFT) | ((htole16(mpdu_len) & RT2870_TXWI_MPDU_LEN_MASK) << RT2870_TXWI_MPDU_LEN_SHIFT); - stbc = (ni->ni_htcap & IEEE80211_HTCAP_RXSTBC) ? 1 : 0; + stbc = (ic->ic_htcaps & IEEE80211_HTCAP_TXSTBC) && + (ni->ni_flags & IEEE80211_NODE_HT) && (ni->ni_htcap & IEEE80211_HTCAP_RXSTBC); shortgi = (vap->iv_flags_ht & (IEEE80211_FHT_SHORTGI20 | IEEE80211_FHT_SHORTGI40)) && (ni->ni_flags & IEEE80211_NODE_HT) && (ni->ni_flags & (IEEE80211_NODE_SGI20 | IEEE80211_NODE_SGI40)); @@ -4357,7 +4358,8 @@ static int rt2870_tx_data(struct rt2870_softc *sc, RT2870_TXWI_PID_SHIFT) | ((htole16(mpdu_len) & RT2870_TXWI_MPDU_LEN_MASK) << RT2870_TXWI_MPDU_LEN_SHIFT); - stbc = (ni->ni_htcap & IEEE80211_HTCAP_RXSTBC) ? 1 : 0; + stbc = (ic->ic_htcaps & IEEE80211_HTCAP_TXSTBC) && + (ni->ni_flags & IEEE80211_NODE_HT) && (ni->ni_htcap & IEEE80211_HTCAP_RXSTBC); shortgi = (vap->iv_flags_ht & (IEEE80211_FHT_SHORTGI20 | IEEE80211_FHT_SHORTGI40)) && (ni->ni_flags & IEEE80211_NODE_HT) && (ni->ni_flags & (IEEE80211_NODE_SGI20 | IEEE80211_NODE_SGI40)); -- 2.11.4.GIT