Lines Matching refs:sta
141 struct ieee80211_sta *sta,
153 static bool rs_ant_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_ant_allow() argument
160 static bool rs_mimo_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_mimo_allow() argument
167 if (!sta->ht_cap.ht_supported) in rs_mimo_allow()
170 if (sta->smps_mode == IEEE80211_SMPS_STATIC) in rs_mimo_allow()
176 if (!iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) in rs_mimo_allow()
179 mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_mimo_allow()
188 static bool rs_siso_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_siso_allow() argument
192 if (!sta->ht_cap.ht_supported) in rs_siso_allow()
198 static bool rs_sgi_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_sgi_allow() argument
202 struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap; in rs_sgi_allow()
203 struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap; in rs_sgi_allow()
403 struct ieee80211_sta *sta,
407 struct ieee80211_sta *sta,
625 struct ieee80211_sta *sta) in rs_tl_turn_on_agg_for_tid() argument
630 sta->addr, tid); in rs_tl_turn_on_agg_for_tid()
631 ret = ieee80211_start_tx_ba_session(sta, tid, 5000); in rs_tl_turn_on_agg_for_tid()
640 ieee80211_stop_tx_ba_session(sta, tid); in rs_tl_turn_on_agg_for_tid()
647 struct ieee80211_sta *sta) in rs_tl_turn_on_agg() argument
650 rs_tl_turn_on_agg_for_tid(mvm, lq_data, tid, sta); in rs_tl_turn_on_agg()
1179 void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in iwl_mvm_rs_tx_status() argument
1191 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rs_tx_status()
1250 ieee80211_stop_tx_ba_session(sta, t); in iwl_mvm_rs_tx_status()
1252 iwl_mvm_rs_rate_init(mvm, sta, info->band, false); in iwl_mvm_rs_tx_status()
1402 if (sta->supp_rates[info->band]) in iwl_mvm_rs_tx_status()
1403 rs_rate_scale_perform(mvm, sta, lq_sta, tid, ndp); in iwl_mvm_rs_tx_status()
1411 struct ieee80211_sta *sta, void *priv_sta, in rs_mac80211_tx_status() argument
1419 if (!iwl_mvm_sta_from_mac80211(sta)->vif) in rs_mac80211_tx_status()
1426 iwl_mvm_rs_tx_status(mvm, sta, rs_get_tid(hdr), info, in rs_mac80211_tx_status()
1606 static u32 rs_bw_from_sta_bw(struct ieee80211_sta *sta) in rs_bw_from_sta_bw() argument
1608 switch (sta->bandwidth) { in rs_bw_from_sta_bw()
1704 static void rs_set_amsdu_len(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_set_amsdu_len() argument
1708 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in rs_set_amsdu_len()
1722 struct ieee80211_sta *sta, in rs_update_rate_tbl() argument
1726 rs_fill_lq_cmd(mvm, sta, lq_sta, &tbl->rate); in rs_update_rate_tbl()
1731 struct ieee80211_sta *sta, in rs_tweak_rate_tbl() argument
1736 if (sta->bandwidth != IEEE80211_STA_RX_BW_80) in rs_tweak_rate_tbl()
1777 struct ieee80211_sta *sta, in rs_get_next_column() argument
1812 if (allow_func && !allow_func(mvm, sta, &tbl->rate, in rs_get_next_column()
1827 rs_bw_from_sta_bw(sta)); in rs_get_next_column()
1861 struct ieee80211_sta *sta, in rs_switch_to_column() argument
1898 rate->bw = rs_bw_from_sta_bw(sta); in rs_switch_to_column()
2021 static bool rs_stbc_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_stbc_allow() argument
2030 if (!iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) in rs_stbc_allow()
2148 struct ieee80211_sta *sta, in rs_tpc_perform() argument
2152 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in rs_tpc_perform()
2240 struct ieee80211_sta *sta, in rs_rate_scale_perform() argument
2261 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in rs_rate_scale_perform()
2301 rs_update_rate_tbl(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2414 !iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) { in rs_rate_scale_perform()
2447 update_lq = rs_tpc_perform(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2458 rs_tweak_rate_tbl(mvm, sta, lq_sta, tbl, scale_action); in rs_rate_scale_perform()
2459 rs_set_amsdu_len(mvm, sta, tbl, scale_action); in rs_rate_scale_perform()
2460 rs_update_rate_tbl(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2484 next_column = rs_get_next_column(mvm, lq_sta, sta, tbl); in rs_rate_scale_perform()
2486 int ret = rs_switch_to_column(mvm, lq_sta, sta, in rs_rate_scale_perform()
2507 rs_update_rate_tbl(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2529 ieee80211_stop_tx_ba_session(sta, tid); in rs_rate_scale_perform()
2546 lq_sta, sta); in rs_rate_scale_perform()
2629 struct ieee80211_sta *sta, in rs_init_optimal_rate() argument
2643 rate->bw = rs_bw_from_sta_bw(sta); in rs_init_optimal_rate()
2644 rate->sgi = rs_sgi_allow(mvm, sta, rate, NULL); in rs_init_optimal_rate()
2709 struct ieee80211_sta *sta, in rs_get_initial_rate() argument
2764 if (sta->vht_cap.vht_supported && in rs_get_initial_rate()
2766 switch (sta->bandwidth) { in rs_get_initial_rate()
2778 IWL_ERR(mvm, "Invalid BW %d\n", sta->bandwidth); in rs_get_initial_rate()
2784 rate->bw = rs_bw_from_sta_bw(sta); in rs_get_initial_rate()
2785 } else if (sta->ht_cap.ht_supported && in rs_get_initial_rate()
2846 struct ieee80211_sta *sta, in rs_initialize_lq() argument
2855 if (!sta || !lq_sta) in rs_initialize_lq()
2866 rs_get_initial_rate(mvm, sta, lq_sta, band, rate); in rs_initialize_lq()
2867 rs_init_optimal_rate(mvm, sta, lq_sta); in rs_initialize_lq()
2873 rs_fill_lq_cmd(mvm, sta, lq_sta, rate); in rs_initialize_lq()
2878 static void rs_get_rate(void *mvm_r, struct ieee80211_sta *sta, void *mvm_sta, in rs_get_rate() argument
2890 if (sta && !iwl_mvm_sta_from_mac80211(sta)->vif) { in rs_get_rate()
2894 sta = NULL; in rs_get_rate()
2907 if (rate_control_send_low(sta, mvm_sta, txrc)) in rs_get_rate()
2926 static void *rs_alloc_sta(void *mvm_rate, struct ieee80211_sta *sta, in rs_alloc_sta() argument
2929 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in rs_alloc_sta()
2967 static void rs_vht_set_enabled_rates(struct ieee80211_sta *sta, in rs_vht_set_enabled_rates() argument
2981 sta->bandwidth == IEEE80211_STA_RX_BW_20) in rs_vht_set_enabled_rates()
2988 if (sta->rx_nss < 2) in rs_vht_set_enabled_rates()
2999 sta->bandwidth == IEEE80211_STA_RX_BW_20) in rs_vht_set_enabled_rates()
3008 struct ieee80211_sta *sta, in rs_ht_init() argument
3039 struct ieee80211_sta *sta, in rs_vht_init() argument
3043 rs_vht_set_enabled_rates(sta, vht_cap, lq_sta); in rs_vht_init()
3133 void iwl_mvm_rs_rate_init(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in iwl_mvm_rs_rate_init() argument
3138 struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap; in iwl_mvm_rs_rate_init()
3139 struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap; in iwl_mvm_rs_rate_init()
3140 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rs_rate_init()
3172 supp = sta->supp_rates[sband->band]; in iwl_mvm_rs_rate_init()
3179 rs_ht_init(mvm, sta, lq_sta, ht_cap); in iwl_mvm_rs_rate_init()
3181 rs_vht_init(mvm, sta, lq_sta, vht_cap); in iwl_mvm_rs_rate_init()
3213 rs_initialize_lq(mvm, sta, lq_sta, band, init); in iwl_mvm_rs_rate_init()
3219 struct ieee80211_sta *sta, void *priv_sta, in rs_rate_update() argument
3227 if (!iwl_mvm_sta_from_mac80211(sta)->vif) in rs_rate_update()
3232 ieee80211_stop_tx_ba_session(sta, tid); in rs_rate_update()
3234 iwl_mvm_rs_rate_init(mvm, sta, sband->band, false); in rs_rate_update()
3324 struct ieee80211_sta *sta, in rs_build_rates_table() argument
3340 rs_stbc_allow(mvm, sta, lq_sta)) in rs_build_rates_table()
3395 struct ieee80211_sta *sta) in rs_bfer_active_iter() argument
3398 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_bfer_active_iter()
3402 if (sta == data->exclude_sta) in rs_bfer_active_iter()
3413 static int rs_bfer_priority(struct iwl_mvm_sta *sta) in rs_bfer_priority() argument
3416 enum nl80211_iftype viftype = ieee80211_vif_type_p2p(sta->vif); in rs_bfer_priority()
3430 WARN_ONCE(true, "viftype %d sta_id %d", viftype, sta->sta_id); in rs_bfer_priority()
3452 struct ieee80211_sta *sta, in rs_set_lq_ss_params() argument
3457 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_set_lq_ss_params()
3459 .exclude_sta = sta, in rs_set_lq_ss_params()
3465 if (!iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) in rs_set_lq_ss_params()
3528 struct ieee80211_sta *sta, in rs_fill_lq_cmd() argument
3548 if (WARN_ON_ONCE(!sta || !initial_rate)) in rs_fill_lq_cmd()
3551 rs_build_rates_table(mvm, sta, lq_sta, initial_rate); in rs_fill_lq_cmd()
3554 rs_set_lq_ss_params(mvm, sta, lq_sta, initial_rate); in rs_fill_lq_cmd()
3556 mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_fill_lq_cmd()
3576 cpu_to_le16(iwl_mvm_coex_agg_time_limit(mvm, sta)); in rs_fill_lq_cmd()
3589 static void rs_free_sta(void *mvm_r, struct ieee80211_sta *sta, in rs_free_sta() argument
4040 struct ieee80211_sta *sta, void *mvm_sta) in rs_rate_init_stub() argument