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>
This commit is contained in:
parent
96c3da7d7d
commit
a13ac9df0a
1 changed files with 4 additions and 3 deletions
|
@ -60,9 +60,10 @@ void rt2x00ht_create_tx_descriptor(struct queue_entry *entry,
|
||||||
* when using more then one tx stream (>MCS7).
|
* when using more then one tx stream (>MCS7).
|
||||||
*/
|
*/
|
||||||
if (tx_info->control.sta && txdesc->mcs > 7 &&
|
if (tx_info->control.sta && txdesc->mcs > 7 &&
|
||||||
(tx_info->control.sta->ht_cap.cap &
|
((tx_info->control.sta->ht_cap.cap &
|
||||||
(WLAN_HT_CAP_SM_PS_DYNAMIC <<
|
IEEE80211_HT_CAP_SM_PS) >>
|
||||||
IEEE80211_HT_CAP_SM_PS_SHIFT)))
|
IEEE80211_HT_CAP_SM_PS_SHIFT) ==
|
||||||
|
WLAN_HT_CAP_SM_PS_DYNAMIC)
|
||||||
__set_bit(ENTRY_TXD_HT_MIMO_PS, &txdesc->flags);
|
__set_bit(ENTRY_TXD_HT_MIMO_PS, &txdesc->flags);
|
||||||
} else {
|
} else {
|
||||||
txdesc->mcs = rt2x00_get_rate_mcs(hwrate->mcs);
|
txdesc->mcs = rt2x00_get_rate_mcs(hwrate->mcs);
|
||||||
|
|
Loading…
Reference in a new issue