Lines Matching refs:sta
32 void rate_control_rate_init(struct sta_info *sta) in rate_control_rate_init() argument
34 struct ieee80211_local *local = sta->sdata->local; in rate_control_rate_init()
35 struct rate_control_ref *ref = sta->rate_ctrl; in rate_control_rate_init()
36 struct ieee80211_sta *ista = &sta->sta; in rate_control_rate_init()
37 void *priv_sta = sta->rate_ctrl_priv; in rate_control_rate_init()
41 ieee80211_sta_set_rx_nss(sta); in rate_control_rate_init()
48 chanctx_conf = rcu_dereference(sta->sdata->vif.chanctx_conf); in rate_control_rate_init()
56 spin_lock_bh(&sta->rate_ctrl_lock); in rate_control_rate_init()
59 spin_unlock_bh(&sta->rate_ctrl_lock); in rate_control_rate_init()
61 set_sta_flag(sta, WLAN_STA_RATE_CONTROL); in rate_control_rate_init()
66 struct sta_info *sta, u32 changed) in rate_control_rate_update() argument
69 struct ieee80211_sta *ista = &sta->sta; in rate_control_rate_update()
70 void *priv_sta = sta->rate_ctrl_priv; in rate_control_rate_update()
76 chanctx_conf = rcu_dereference(sta->sdata->vif.chanctx_conf); in rate_control_rate_update()
82 spin_lock_bh(&sta->rate_ctrl_lock); in rate_control_rate_update()
85 spin_unlock_bh(&sta->rate_ctrl_lock); in rate_control_rate_update()
88 drv_sta_rc_update(local, sta->sdata, &sta->sta, changed); in rate_control_rate_update()
282 struct ieee80211_sta *sta, in __rate_control_send_low() argument
302 if (!rate_supported(sta, sband->band, i)) in __rate_control_send_low()
310 sta ? sta->supp_rates[sband->band] : -1, in __rate_control_send_low()
327 struct sta_info *sta; in rate_control_send_low() local
343 sta = container_of(pubsta, struct sta_info, sta); in rate_control_send_low()
344 if (ieee80211_vif_is_mesh(&sta->sdata->vif)) in rate_control_send_low()
646 static void rate_control_fill_sta_table(struct ieee80211_sta *sta, in rate_control_fill_sta_table() argument
654 if (sta && !info->control.skip_table) in rate_control_fill_sta_table()
655 ratetbl = rcu_dereference(sta->rates); in rate_control_fill_sta_table()
686 struct ieee80211_sta *sta, u32 *mask, in rate_control_cap_mask() argument
716 if (sta) { in rate_control_cap_mask()
721 *mask &= sta->supp_rates[sband->band]; in rate_control_cap_mask()
723 mcs_mask[i] &= sta->ht_cap.mcs.rx_mask[i]; in rate_control_cap_mask()
725 sta_vht_cap = sta->vht_cap.vht_mcs.rx_mcs_map; in rate_control_cap_mask()
735 rate_control_apply_mask_ratetbl(struct sta_info *sta, in rate_control_apply_mask_ratetbl() argument
745 if (!rate_control_cap_mask(sta->sdata, sband, &sta->sta, &mask, in rate_control_apply_mask_ratetbl()
749 chan_width = sta->sdata->vif.bss_conf.chandef.width; in rate_control_apply_mask_ratetbl()
761 struct ieee80211_sta *sta, in rate_control_apply_mask() argument
777 if (!rate_control_cap_mask(sdata, sband, sta, &mask, mcs_mask, in rate_control_apply_mask()
800 struct ieee80211_sta *sta, in ieee80211_get_tx_rates() argument
810 rate_control_fill_sta_table(sta, info, dest, max_rates); in ieee80211_get_tx_rates()
819 rate_control_apply_mask(sdata, sta, sband, dest, max_rates); in ieee80211_get_tx_rates()
822 __rate_control_send_low(&sdata->local->hw, sband, sta, info, in ieee80211_get_tx_rates()
825 if (sta) in ieee80211_get_tx_rates()
831 struct sta_info *sta, in rate_control_get_rate() argument
840 if (sta && test_sta_flag(sta, WLAN_STA_RATE_CONTROL)) { in rate_control_get_rate()
841 ista = &sta->sta; in rate_control_get_rate()
842 priv_sta = sta->rate_ctrl_priv; in rate_control_get_rate()
855 spin_lock_bh(&sta->rate_ctrl_lock); in rate_control_get_rate()
857 spin_unlock_bh(&sta->rate_ctrl_lock); in rate_control_get_rate()
874 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in rate_control_set_rates() local
878 sband = hw->wiphy->bands[ieee80211_get_sdata_band(sta->sdata)]; in rate_control_set_rates()
879 rate_control_apply_mask_ratetbl(sta, sband, rates); in rate_control_set_rates()
891 drv_sta_rate_tbl_update(hw_to_local(hw), sta->sdata, pubsta); in rate_control_set_rates()