From 853dd361b5898312f6e58ab50192a6817b97225b Mon Sep 17 00:00:00 2001 From: Alexander Egorenkov Date: Sun, 16 May 2010 13:58:10 +0200 Subject: [PATCH] Do not use ShortGI and STBC with management frames; Atheros cards have problems with ShortGI and MGMT frames --- rt2860.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/rt2860.c b/rt2860.c index e2ddf87..279f688 100644 --- a/rt2860.c +++ b/rt2860.c @@ -4105,15 +4105,17 @@ static int rt2860_tx_frame(struct rt2860_softc *sc, RT2860_TXWI_PID_SHIFT) | ((htole16(mpdu_len) & RT2860_TXWI_MPDU_LEN_MASK) << RT2860_TXWI_MPDU_LEN_SHIFT); - stbc = sc->tx_stbc && (mcs <= 7) && (ic->ic_htcaps & IEEE80211_HTCAP_TXSTBC) && + stbc = ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_DATA) && + sc->tx_stbc && (mcs <= 7) && (ic->ic_htcaps & IEEE80211_HTCAP_TXSTBC) && (ni->ni_flags & IEEE80211_NODE_HT) && (ni->ni_htcap & IEEE80211_HTCAP_RXSTBC); - shortgi = ((ic->ic_flags_ext & IEEE80211_FEXT_SHORTGI20) && + shortgi = ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_DATA) && + (((ic->ic_flags_ext & IEEE80211_FEXT_SHORTGI20) && (ni->ni_flags & IEEE80211_NODE_HT) && (ni->ni_htcap & IEEE80211_HTCAP_SHORTGI20) && (ni->ni_chw == 20)) || - ((ic->ic_flags_ext & IEEE80211_FEXT_SHORTGI40) && + ((ic->ic_flags_ext & IEEE80211_FEXT_SHORTGI40) && (ni->ni_flags & IEEE80211_NODE_HT) && (ni->ni_htcap & IEEE80211_HTCAP_SHORTGI40) && - (ni->ni_chw == 40)); + (ni->ni_chw == 40))); txwi->phymode_ifs_stbc_shortgi |= ((stbc & RT2860_TXWI_STBC_MASK) << RT2860_TXWI_STBC_SHIFT) | -- 2.11.4.GIT