diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2010-08-06 22:46:19 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-08-16 23:26:42 +0400 |
commit | 84804cdca043e2315bf5eae60807ac105929073f (patch) | |
tree | ba663e2f926f322f55593d4f3adf7d8286c83a05 /drivers/net/wireless/rt2x00/rt2x00ht.c | |
parent | 7e613e1666d59b5364f7918b3427bf328ac5f9ca (diff) | |
download | linux-84804cdca043e2315bf5eae60807ac105929073f.tar.xz |
rt2x00: Set MIMO PS flag in tx descriptor for STAs in dynamic SMPS mode
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/net/wireless/rt2x00/rt2x00ht.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00ht.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00ht.c b/drivers/net/wireless/rt2x00/rt2x00ht.c index c004cd3a8847..ad3c7ff4837b 100644 --- a/drivers/net/wireless/rt2x00/rt2x00ht.c +++ b/drivers/net/wireless/rt2x00/rt2x00ht.c @@ -54,6 +54,16 @@ void rt2x00ht_create_tx_descriptor(struct queue_entry *entry, */ if (txrate->flags & IEEE80211_TX_RC_MCS) { txdesc->mcs = txrate->idx; + + /* + * MIMO PS should be set to 1 for STA's using dynamic SM PS + * when using more then one tx stream (>MCS7). + */ + if (tx_info->control.sta && txdesc->mcs > 7 && + (tx_info->control.sta->ht_cap.cap & + (WLAN_HT_CAP_SM_PS_DYNAMIC << + IEEE80211_HT_CAP_SM_PS_SHIFT))) + __set_bit(ENTRY_TXD_HT_MIMO_PS, &txdesc->flags); } else { txdesc->mcs = rt2x00_get_rate_mcs(hwrate->mcs); if (txrate->flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) |