Lines Matching refs:sta
33 struct sta_info *sta = link_sta->sta; in rate_control_rate_init() local
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()
47 if (WARN_ON(ieee80211_vif_is_mld(&sta->sdata->vif))) in rate_control_rate_init()
52 chanctx_conf = rcu_dereference(sta->sdata->vif.bss_conf.chanctx_conf); in rate_control_rate_init()
62 ieee80211_s1g_sta_rate_init(sta); in rate_control_rate_init()
67 spin_lock_bh(&sta->rate_ctrl_lock); in rate_control_rate_init()
70 spin_unlock_bh(&sta->rate_ctrl_lock); in rate_control_rate_init()
72 set_sta_flag(sta, WLAN_STA_RATE_CONTROL); in rate_control_rate_init()
75 void rate_control_rate_init_all_links(struct sta_info *sta) in rate_control_rate_init_all_links() argument
79 for (link_id = 0; link_id < ARRAY_SIZE(sta->link); link_id++) { in rate_control_rate_init_all_links()
82 link_sta = sdata_dereference(sta->link[link_id], sta->sdata); in rate_control_rate_init_all_links()
94 struct sta_info *sta = container_of(st->sta, struct sta_info, sta); in rate_control_tx_status() local
95 void *priv_sta = sta->rate_ctrl_priv; in rate_control_tx_status()
98 if (!ref || !test_sta_flag(sta, WLAN_STA_RATE_CONTROL)) in rate_control_tx_status()
103 spin_lock_bh(&sta->rate_ctrl_lock); in rate_control_tx_status()
107 ref->ops->tx_status(ref->priv, sband, st->sta, priv_sta, st->skb); in rate_control_tx_status()
111 spin_unlock_bh(&sta->rate_ctrl_lock); in rate_control_tx_status()
120 struct sta_info *sta = link_sta->sta; in rate_control_rate_update() local
121 struct ieee80211_sta *ista = &sta->sta; in rate_control_rate_update()
122 void *priv_sta = sta->rate_ctrl_priv; in rate_control_rate_update()
128 chanctx_conf = rcu_dereference(sta->sdata->vif.bss_conf.chanctx_conf); in rate_control_rate_update()
134 spin_lock_bh(&sta->rate_ctrl_lock); in rate_control_rate_update()
137 spin_unlock_bh(&sta->rate_ctrl_lock); in rate_control_rate_update()
141 if (sta->uploaded) in rate_control_rate_update()
142 drv_link_sta_rc_update(local, sta->sdata, link_sta->pub, in rate_control_rate_update()
367 struct ieee80211_sta *sta, in __rate_control_send_low() argument
392 if (!rate_supported(sta, sband->band, i)) in __rate_control_send_low()
400 sta ? sta->addr : NULL, in __rate_control_send_low()
401 sta ? sta->deflink.supp_rates[sband->band] : -1, in __rate_control_send_low()
418 struct sta_info *sta; in rate_control_send_low() local
434 sta = container_of(pubsta, struct sta_info, sta); in rate_control_send_low()
435 if (ieee80211_vif_is_mesh(&sta->sdata->vif)) in rate_control_send_low()
736 static void rate_control_fill_sta_table(struct ieee80211_sta *sta, in rate_control_fill_sta_table() argument
744 if (sta && !info->control.skip_table) in rate_control_fill_sta_table()
745 ratetbl = rcu_dereference(sta->rates); in rate_control_fill_sta_table()
776 struct ieee80211_sta *sta, u32 *mask, in rate_control_cap_mask() argument
801 if (sta) { in rate_control_cap_mask()
806 *mask &= sta->deflink.supp_rates[sband->band]; in rate_control_cap_mask()
808 mcs_mask[i] &= sta->deflink.ht_cap.mcs.rx_mask[i]; in rate_control_cap_mask()
810 sta_vht_cap = sta->deflink.vht_cap.vht_mcs.rx_mcs_map; in rate_control_cap_mask()
820 rate_control_apply_mask_ratetbl(struct sta_info *sta, in rate_control_apply_mask_ratetbl() argument
830 if (!rate_control_cap_mask(sta->sdata, sband, &sta->sta, &mask, in rate_control_apply_mask_ratetbl()
834 chan_width = sta->sdata->vif.bss_conf.chanreq.oper.width; in rate_control_apply_mask_ratetbl()
846 struct ieee80211_sta *sta, in rate_control_apply_mask() argument
862 if (!rate_control_cap_mask(sdata, sband, sta, &mask, mcs_mask, in rate_control_apply_mask()
885 struct ieee80211_sta *sta, in ieee80211_get_tx_rates() argument
895 rate_control_fill_sta_table(sta, info, dest, max_rates); in ieee80211_get_tx_rates()
904 rate_control_apply_mask(sdata, sta, sband, dest, max_rates); in ieee80211_get_tx_rates()
910 __rate_control_send_low(&sdata->local->hw, sband, sta, info, in ieee80211_get_tx_rates()
913 if (sta) in ieee80211_get_tx_rates()
919 struct sta_info *sta, in rate_control_get_rate() argument
934 if (rate_control_send_low(sta ? &sta->sta : NULL, txrc)) in rate_control_get_rate()
940 if (sta && test_sta_flag(sta, WLAN_STA_RATE_CONTROL)) { in rate_control_get_rate()
941 ista = &sta->sta; in rate_control_get_rate()
942 priv_sta = sta->rate_ctrl_priv; in rate_control_get_rate()
946 spin_lock_bh(&sta->rate_ctrl_lock); in rate_control_get_rate()
948 spin_unlock_bh(&sta->rate_ctrl_lock); in rate_control_get_rate()
965 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in rate_control_set_rates() local
969 sband = ieee80211_get_sband(sta->sdata); in rate_control_set_rates()
972 rate_control_apply_mask_ratetbl(sta, sband, rates); in rate_control_set_rates()
984 if (sta->uploaded) in rate_control_set_rates()
985 drv_sta_rate_tbl_update(hw_to_local(hw), sta->sdata, pubsta); in rate_control_set_rates()