Lines Matching refs:sta
119 struct sta_info *sta) in ieee80211_vht_cap_ie_to_sta_vht_cap() argument
121 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap; in ieee80211_vht_cap_ie_to_sta_vht_cap()
128 if (!sta->sta.ht_cap.ht_supported) in ieee80211_vht_cap_ie_to_sta_vht_cap()
165 !test_sta_flag(sta, WLAN_STA_TDLS_PEER)) in ieee80211_vht_cap_ie_to_sta_vht_cap()
290 sta->addr); in ieee80211_vht_cap_ie_to_sta_vht_cap()
298 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_160; in ieee80211_vht_cap_ie_to_sta_vht_cap()
301 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_80; in ieee80211_vht_cap_ie_to_sta_vht_cap()
313 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_160; in ieee80211_vht_cap_ie_to_sta_vht_cap()
316 sta->sta.bandwidth = ieee80211_sta_cur_vht_bw(sta); in ieee80211_vht_cap_ie_to_sta_vht_cap()
319 if (sta->sta.max_amsdu_len == IEEE80211_MAX_MPDU_LEN_HT_3839) in ieee80211_vht_cap_ie_to_sta_vht_cap()
324 sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_11454; in ieee80211_vht_cap_ie_to_sta_vht_cap()
327 sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_7991; in ieee80211_vht_cap_ie_to_sta_vht_cap()
331 sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_3895; in ieee80211_vht_cap_ie_to_sta_vht_cap()
336 enum ieee80211_sta_rx_bandwidth ieee80211_sta_cap_rx_bw(struct sta_info *sta) in ieee80211_sta_cap_rx_bw() argument
338 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap; in ieee80211_sta_cap_rx_bw()
342 return sta->sta.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ? in ieee80211_sta_cap_rx_bw()
363 enum nl80211_chan_width ieee80211_sta_cap_chan_bw(struct sta_info *sta) in ieee80211_sta_cap_chan_bw() argument
365 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap; in ieee80211_sta_cap_chan_bw()
369 if (!sta->sta.ht_cap.ht_supported) in ieee80211_sta_cap_chan_bw()
372 return sta->sta.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ? in ieee80211_sta_cap_chan_bw()
387 ieee80211_sta_rx_bw_to_chan_width(struct sta_info *sta) in ieee80211_sta_rx_bw_to_chan_width() argument
389 enum ieee80211_sta_rx_bandwidth cur_bw = sta->sta.bandwidth; in ieee80211_sta_rx_bw_to_chan_width()
390 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap; in ieee80211_sta_rx_bw_to_chan_width()
395 if (!sta->sta.ht_cap.ht_supported) in ieee80211_sta_rx_bw_to_chan_width()
436 enum ieee80211_sta_rx_bandwidth ieee80211_sta_cur_vht_bw(struct sta_info *sta) in ieee80211_sta_cur_vht_bw() argument
438 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_sta_cur_vht_bw()
442 bw = ieee80211_sta_cap_rx_bw(sta); in ieee80211_sta_cur_vht_bw()
443 bw = min(bw, sta->cur_max_bandwidth); in ieee80211_sta_cur_vht_bw()
450 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in ieee80211_sta_cur_vht_bw()
451 test_sta_flag(sta, WLAN_STA_TDLS_WIDER_BW)) in ieee80211_sta_cur_vht_bw()
459 void ieee80211_sta_set_rx_nss(struct sta_info *sta) in ieee80211_sta_set_rx_nss() argument
464 if (sta->sta.rx_nss) in ieee80211_sta_set_rx_nss()
467 if (sta->sta.ht_cap.ht_supported) { in ieee80211_sta_set_rx_nss()
468 if (sta->sta.ht_cap.mcs.rx_mask[0]) in ieee80211_sta_set_rx_nss()
470 if (sta->sta.ht_cap.mcs.rx_mask[1]) in ieee80211_sta_set_rx_nss()
472 if (sta->sta.ht_cap.mcs.rx_mask[2]) in ieee80211_sta_set_rx_nss()
474 if (sta->sta.ht_cap.mcs.rx_mask[3]) in ieee80211_sta_set_rx_nss()
479 if (sta->sta.vht_cap.vht_supported) { in ieee80211_sta_set_rx_nss()
483 rx_mcs_map = le16_to_cpu(sta->sta.vht_cap.vht_mcs.rx_mcs_map); in ieee80211_sta_set_rx_nss()
497 sta->sta.rx_nss = max_t(u8, 1, ht_rx_nss); in ieee80211_sta_set_rx_nss()
501 struct sta_info *sta, u8 opmode, in __ieee80211_vht_handle_opmode() argument
517 if (sta->sta.rx_nss != nss) { in __ieee80211_vht_handle_opmode()
518 sta->sta.rx_nss = nss; in __ieee80211_vht_handle_opmode()
526 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_20; in __ieee80211_vht_handle_opmode()
529 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_40; in __ieee80211_vht_handle_opmode()
532 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_80; in __ieee80211_vht_handle_opmode()
535 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_160; in __ieee80211_vht_handle_opmode()
539 new_bw = ieee80211_sta_cur_vht_bw(sta); in __ieee80211_vht_handle_opmode()
540 if (new_bw != sta->sta.bandwidth) { in __ieee80211_vht_handle_opmode()
541 sta->sta.bandwidth = new_bw; in __ieee80211_vht_handle_opmode()
542 sta_opmode.bw = ieee80211_sta_rx_bw_to_chan_width(sta); in __ieee80211_vht_handle_opmode()
548 cfg80211_sta_opmode_change_notify(sdata->dev, sta->addr, in __ieee80211_vht_handle_opmode()
592 struct sta_info *sta, u8 opmode, in ieee80211_vht_handle_opmode() argument
598 u32 changed = __ieee80211_vht_handle_opmode(sdata, sta, opmode, band); in ieee80211_vht_handle_opmode()
602 rate_control_rate_update(local, sband, sta, changed); in ieee80211_vht_handle_opmode()