aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ht.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/ht.c')
-rw-r--r--net/mac80211/ht.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index b84147ac5b4c..0db25d4bb223 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -102,6 +102,7 @@ bool ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_sub_if_data *sdata,
102 int i, max_tx_streams; 102 int i, max_tx_streams;
103 bool changed; 103 bool changed;
104 enum ieee80211_sta_rx_bandwidth bw; 104 enum ieee80211_sta_rx_bandwidth bw;
105 enum ieee80211_smps_mode smps_mode;
105 106
106 memset(&ht_cap, 0, sizeof(ht_cap)); 107 memset(&ht_cap, 0, sizeof(ht_cap));
107 108
@@ -216,6 +217,24 @@ bool ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_sub_if_data *sdata,
216 ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ? 217 ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ?
217 IEEE80211_STA_RX_BW_40 : IEEE80211_STA_RX_BW_20; 218 IEEE80211_STA_RX_BW_40 : IEEE80211_STA_RX_BW_20;
218 219
220 switch ((ht_cap.cap & IEEE80211_HT_CAP_SM_PS)
221 >> IEEE80211_HT_CAP_SM_PS_SHIFT) {
222 case WLAN_HT_CAP_SM_PS_INVALID:
223 case WLAN_HT_CAP_SM_PS_STATIC:
224 smps_mode = IEEE80211_SMPS_STATIC;
225 break;
226 case WLAN_HT_CAP_SM_PS_DYNAMIC:
227 smps_mode = IEEE80211_SMPS_DYNAMIC;
228 break;
229 case WLAN_HT_CAP_SM_PS_DISABLED:
230 smps_mode = IEEE80211_SMPS_OFF;
231 break;
232 }
233
234 if (smps_mode != sta->sta.smps_mode)
235 changed = true;
236 sta->sta.smps_mode = smps_mode;
237
219 return changed; 238 return changed;
220} 239}
221 240