Lines Matching refs:sta
119 struct sta_info *sta)
121 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap;
128 if (!sta->sta.ht_cap.ht_supported)
165 !test_sta_flag(sta, WLAN_STA_TDLS_PEER))
290 sta->addr);
298 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_160;
301 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_80;
313 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_160;
316 sta->sta.bandwidth = ieee80211_sta_cur_vht_bw(sta);
320 sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_11454;
323 sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_7991;
327 sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_3895;
333 enum ieee80211_sta_rx_bandwidth ieee80211_sta_cap_rx_bw(struct sta_info *sta)
335 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap;
336 struct ieee80211_sta_he_cap *he_cap = &sta->sta.he_cap;
342 if (sta->sdata->vif.bss_conf.chandef.chan->band ==
360 return sta->sta.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ?
381 enum nl80211_chan_width ieee80211_sta_cap_chan_bw(struct sta_info *sta)
383 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap;
387 if (!sta->sta.ht_cap.ht_supported)
390 return sta->sta.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ?
405 ieee80211_sta_rx_bw_to_chan_width(struct sta_info *sta)
407 enum ieee80211_sta_rx_bandwidth cur_bw = sta->sta.bandwidth;
408 struct ieee80211_sta_vht_cap *vht_cap = &sta->sta.vht_cap;
413 if (!sta->sta.ht_cap.ht_supported)
455 enum ieee80211_sta_rx_bandwidth ieee80211_sta_cur_vht_bw(struct sta_info *sta)
457 struct ieee80211_sub_if_data *sdata = sta->sdata;
461 bw = ieee80211_sta_cap_rx_bw(sta);
462 bw = min(bw, sta->cur_max_bandwidth);
473 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) &&
474 test_sta_flag(sta, WLAN_STA_TDLS_WIDER_BW) &&
475 test_sta_flag(sta, WLAN_STA_AUTHORIZED) &&
476 sta->tdls_chandef.chan)
477 bw = min(bw, ieee80211_chan_width_to_rx_bw(sta->tdls_chandef.width));
484 void ieee80211_sta_set_rx_nss(struct sta_info *sta)
489 if (sta->sta.rx_nss)
492 if (sta->sta.he_cap.has_he) {
495 const struct ieee80211_sta_he_cap *he_cap = &sta->sta.he_cap;
520 if (sta->sta.ht_cap.ht_supported) {
521 if (sta->sta.ht_cap.mcs.rx_mask[0])
523 if (sta->sta.ht_cap.mcs.rx_mask[1])
525 if (sta->sta.ht_cap.mcs.rx_mask[2])
527 if (sta->sta.ht_cap.mcs.rx_mask[3])
532 if (sta->sta.vht_cap.vht_supported) {
536 rx_mcs_map = le16_to_cpu(sta->sta.vht_cap.vht_mcs.rx_mcs_map);
551 sta->sta.rx_nss = max_t(u8, 1, rx_nss);
555 struct sta_info *sta, u8 opmode,
571 if (sta->sta.rx_nss != nss) {
572 sta->sta.rx_nss = nss;
581 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_20;
585 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_40;
589 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_160;
591 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_80;
595 sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_160;
599 new_bw = ieee80211_sta_cur_vht_bw(sta);
600 if (new_bw != sta->sta.bandwidth) {
601 sta->sta.bandwidth = new_bw;
602 sta_opmode.bw = ieee80211_sta_rx_bw_to_chan_width(sta);
608 cfg80211_sta_opmode_change_notify(sdata->dev, sta->addr,
652 struct sta_info *sta, u8 opmode,
658 u32 changed = __ieee80211_vht_handle_opmode(sdata, sta, opmode, band);
662 rate_control_rate_update(local, sband, sta, changed);