int ack_dur;
        int stbc;
        int i;
+       unsigned int smps;
 
        /* fall back to the old minstrel for legacy stations */
        if (!sta->ht_cap.ht_supported)
            oper_chan_type != NL80211_CHAN_HT40PLUS)
                sta_cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
 
+       smps = (sta_cap & IEEE80211_HT_CAP_SM_PS) >>
+               IEEE80211_HT_CAP_SM_PS_SHIFT;
+
        for (i = 0; i < ARRAY_SIZE(mi->groups); i++) {
                u16 req = 0;
 
                if ((sta_cap & req) != req)
                        continue;
 
+               /* Mark MCS > 7 as unsupported if STA is in static SMPS mode */
+               if (smps == WLAN_HT_CAP_SM_PS_STATIC &&
+                   minstrel_mcs_groups[i].streams > 1)
+                       continue;
+
                mi->groups[i].supported =
                        mcs->rx_mask[minstrel_mcs_groups[i].streams - 1];