Lines Matching refs:sta

121 				    struct sta_info *sta)  in ieee80211_vht_cap_ie_to_sta_vht_cap()  argument
123 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap; in ieee80211_vht_cap_ie_to_sta_vht_cap()
130 if (!sta->sta.ht_cap.ht_supported) in ieee80211_vht_cap_ie_to_sta_vht_cap()
167 !test_sta_flag(sta, WLAN_STA_TDLS_PEER)) in ieee80211_vht_cap_ie_to_sta_vht_cap()
285 sta->addr); in ieee80211_vht_cap_ie_to_sta_vht_cap()
293 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_160; in ieee80211_vht_cap_ie_to_sta_vht_cap()
296 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_80; in ieee80211_vht_cap_ie_to_sta_vht_cap()
299 sta->sta.bandwidth = ieee80211_sta_cur_vht_bw(sta); in ieee80211_vht_cap_ie_to_sta_vht_cap()
302 if (sta->sta.max_amsdu_len == IEEE80211_MAX_MPDU_LEN_HT_3839) in ieee80211_vht_cap_ie_to_sta_vht_cap()
307 sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_11454; in ieee80211_vht_cap_ie_to_sta_vht_cap()
310 sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_7991; in ieee80211_vht_cap_ie_to_sta_vht_cap()
314 sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_3895; in ieee80211_vht_cap_ie_to_sta_vht_cap()
319 enum ieee80211_sta_rx_bandwidth ieee80211_sta_cap_rx_bw(struct sta_info *sta) in ieee80211_sta_cap_rx_bw() argument
321 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap; in ieee80211_sta_cap_rx_bw()
325 return sta->sta.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ? in ieee80211_sta_cap_rx_bw()
338 enum nl80211_chan_width ieee80211_sta_cap_chan_bw(struct sta_info *sta) in ieee80211_sta_cap_chan_bw() argument
340 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap; in ieee80211_sta_cap_chan_bw()
344 if (!sta->sta.ht_cap.ht_supported) in ieee80211_sta_cap_chan_bw()
347 return sta->sta.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ? in ieee80211_sta_cap_chan_bw()
362 ieee80211_sta_rx_bw_to_chan_width(struct sta_info *sta) in ieee80211_sta_rx_bw_to_chan_width() argument
364 enum ieee80211_sta_rx_bandwidth cur_bw = sta->sta.bandwidth; in ieee80211_sta_rx_bw_to_chan_width()
365 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap; in ieee80211_sta_rx_bw_to_chan_width()
370 if (!sta->sta.ht_cap.ht_supported) in ieee80211_sta_rx_bw_to_chan_width()
411 enum ieee80211_sta_rx_bandwidth ieee80211_sta_cur_vht_bw(struct sta_info *sta) in ieee80211_sta_cur_vht_bw() argument
413 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_sta_cur_vht_bw()
417 bw = ieee80211_sta_cap_rx_bw(sta); in ieee80211_sta_cur_vht_bw()
418 bw = min(bw, sta->cur_max_bandwidth); in ieee80211_sta_cur_vht_bw()
425 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in ieee80211_sta_cur_vht_bw()
426 test_sta_flag(sta, WLAN_STA_TDLS_WIDER_BW)) in ieee80211_sta_cur_vht_bw()
434 void ieee80211_sta_set_rx_nss(struct sta_info *sta) in ieee80211_sta_set_rx_nss() argument
439 if (sta->sta.rx_nss) in ieee80211_sta_set_rx_nss()
442 if (sta->sta.ht_cap.ht_supported) { in ieee80211_sta_set_rx_nss()
443 if (sta->sta.ht_cap.mcs.rx_mask[0]) in ieee80211_sta_set_rx_nss()
445 if (sta->sta.ht_cap.mcs.rx_mask[1]) in ieee80211_sta_set_rx_nss()
447 if (sta->sta.ht_cap.mcs.rx_mask[2]) in ieee80211_sta_set_rx_nss()
449 if (sta->sta.ht_cap.mcs.rx_mask[3]) in ieee80211_sta_set_rx_nss()
454 if (sta->sta.vht_cap.vht_supported) { in ieee80211_sta_set_rx_nss()
458 rx_mcs_map = le16_to_cpu(sta->sta.vht_cap.vht_mcs.rx_mcs_map); in ieee80211_sta_set_rx_nss()
472 sta->sta.rx_nss = max_t(u8, 1, ht_rx_nss); in ieee80211_sta_set_rx_nss()
476 struct sta_info *sta, u8 opmode, in __ieee80211_vht_handle_opmode() argument
492 if (sta->sta.rx_nss != nss) { in __ieee80211_vht_handle_opmode()
493 sta->sta.rx_nss = nss; in __ieee80211_vht_handle_opmode()
501 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_20; in __ieee80211_vht_handle_opmode()
504 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_40; in __ieee80211_vht_handle_opmode()
507 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_80; in __ieee80211_vht_handle_opmode()
510 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_160; in __ieee80211_vht_handle_opmode()
514 new_bw = ieee80211_sta_cur_vht_bw(sta); in __ieee80211_vht_handle_opmode()
515 if (new_bw != sta->sta.bandwidth) { in __ieee80211_vht_handle_opmode()
516 sta->sta.bandwidth = new_bw; in __ieee80211_vht_handle_opmode()
517 sta_opmode.bw = ieee80211_sta_rx_bw_to_chan_width(sta); in __ieee80211_vht_handle_opmode()
523 cfg80211_sta_opmode_change_notify(sdata->dev, sta->addr, in __ieee80211_vht_handle_opmode()
567 struct sta_info *sta, u8 opmode, in ieee80211_vht_handle_opmode() argument
573 u32 changed = __ieee80211_vht_handle_opmode(sdata, sta, opmode, band); in ieee80211_vht_handle_opmode()
577 rate_control_rate_update(local, sband, sta, changed); in ieee80211_vht_handle_opmode()