diff options
author | Helmut Schaa <helmut.schaa@googlemail.com> | 2010-10-02 05:28:02 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-10-05 13:35:26 -0400 |
commit | a13ac9df0a2125507295da02444cd88bebf0df36 (patch) | |
tree | 4e5bab21d44445c2bf59e8cdc387bb24886cfffe /drivers | |
parent | 96c3da7d7d7c37ee308ad6813947f48a71cca573 (diff) |
rt2x00: Fix SM PS check
Fix a check for dynamic SM PS mode in the STAs HT caps. Since a
value of 3 means "SM PS disabled" the previous check assumed in
that case that "dynamic SM PS" was enabled and as such prefixed
every MCS>7 frame with a unnecessary RTS/CTS exchange. Also,
the bit shift was done in the wrong direction.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00ht.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00ht.c b/drivers/net/wireless/rt2x00/rt2x00ht.c index ad3c7ff4837b..48b6ed426da5 100644 --- a/drivers/net/wireless/rt2x00/rt2x00ht.c +++ b/drivers/net/wireless/rt2x00/rt2x00ht.c | |||
@@ -60,9 +60,10 @@ void rt2x00ht_create_tx_descriptor(struct queue_entry *entry, | |||
60 | * when using more then one tx stream (>MCS7). | 60 | * when using more then one tx stream (>MCS7). |
61 | */ | 61 | */ |
62 | if (tx_info->control.sta && txdesc->mcs > 7 && | 62 | if (tx_info->control.sta && txdesc->mcs > 7 && |
63 | (tx_info->control.sta->ht_cap.cap & | 63 | ((tx_info->control.sta->ht_cap.cap & |
64 | (WLAN_HT_CAP_SM_PS_DYNAMIC << | 64 | IEEE80211_HT_CAP_SM_PS) >> |
65 | IEEE80211_HT_CAP_SM_PS_SHIFT))) | 65 | IEEE80211_HT_CAP_SM_PS_SHIFT) == |
66 | WLAN_HT_CAP_SM_PS_DYNAMIC) | ||
66 | __set_bit(ENTRY_TXD_HT_MIMO_PS, &txdesc->flags); | 67 | __set_bit(ENTRY_TXD_HT_MIMO_PS, &txdesc->flags); |
67 | } else { | 68 | } else { |
68 | txdesc->mcs = rt2x00_get_rate_mcs(hwrate->mcs); | 69 | txdesc->mcs = rt2x00_get_rate_mcs(hwrate->mcs); |