Lines Matching refs:sta
140 struct ieee80211_sta *sta,
152 static bool rs_ant_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_ant_allow() argument
159 static bool rs_mimo_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_mimo_allow() argument
166 if (!sta->ht_cap.ht_supported) in rs_mimo_allow()
169 if (sta->smps_mode == IEEE80211_SMPS_STATIC) in rs_mimo_allow()
175 if (!iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) in rs_mimo_allow()
178 mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_mimo_allow()
189 static bool rs_siso_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_siso_allow() argument
193 if (!sta->ht_cap.ht_supported) in rs_siso_allow()
199 static bool rs_sgi_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_sgi_allow() argument
204 struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap; in rs_sgi_allow()
205 struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap; in rs_sgi_allow()
402 struct ieee80211_sta *sta,
406 struct ieee80211_sta *sta,
566 struct ieee80211_sta *sta) in rs_tl_turn_on_agg_for_tid() argument
571 sta->addr, tid); in rs_tl_turn_on_agg_for_tid()
572 ret = ieee80211_start_tx_ba_session(sta, tid, 5000); in rs_tl_turn_on_agg_for_tid()
581 ieee80211_stop_tx_ba_session(sta, tid); in rs_tl_turn_on_agg_for_tid()
588 struct ieee80211_sta *sta) in rs_tl_turn_on_agg() argument
591 rs_tl_turn_on_agg_for_tid(mvm, lq_data, tid, sta); in rs_tl_turn_on_agg()
1117 void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in iwl_mvm_rs_tx_status() argument
1129 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rs_tx_status()
1188 ieee80211_stop_tx_ba_session(sta, t); in iwl_mvm_rs_tx_status()
1190 iwl_mvm_rs_rate_init(mvm, sta, info->band, false); in iwl_mvm_rs_tx_status()
1323 if (sta->supp_rates[info->band]) in iwl_mvm_rs_tx_status()
1324 rs_rate_scale_perform(mvm, sta, lq_sta, tid); in iwl_mvm_rs_tx_status()
1332 struct ieee80211_sta *sta, void *priv_sta, in rs_mac80211_tx_status() argument
1340 if (!iwl_mvm_sta_from_mac80211(sta)->vif) in rs_mac80211_tx_status()
1347 iwl_mvm_rs_tx_status(mvm, sta, rs_get_tid(hdr), info); in rs_mac80211_tx_status()
1520 static u32 rs_bw_from_sta_bw(struct ieee80211_sta *sta) in rs_bw_from_sta_bw() argument
1522 if (sta->bandwidth >= IEEE80211_STA_RX_BW_80) in rs_bw_from_sta_bw()
1524 else if (sta->bandwidth >= IEEE80211_STA_RX_BW_40) in rs_bw_from_sta_bw()
1617 struct ieee80211_sta *sta, in rs_update_rate_tbl() argument
1621 rs_fill_lq_cmd(mvm, sta, lq_sta, &tbl->rate); in rs_update_rate_tbl()
1627 struct ieee80211_sta *sta, in rs_get_next_column() argument
1662 if (allow_func && !allow_func(mvm, sta, tbl, next_col)) in rs_get_next_column()
1676 rs_bw_from_sta_bw(sta)); in rs_get_next_column()
1710 struct ieee80211_sta *sta, in rs_switch_to_column() argument
1749 rate->bw = rs_bw_from_sta_bw(sta); in rs_switch_to_column()
1872 static bool rs_stbc_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_stbc_allow() argument
1881 if (!iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) in rs_stbc_allow()
1998 struct ieee80211_sta *sta, in rs_tpc_perform() argument
2002 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in rs_tpc_perform()
2090 struct ieee80211_sta *sta, in rs_rate_scale_perform() argument
2111 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in rs_rate_scale_perform()
2151 rs_update_rate_tbl(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2271 !iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) { in rs_rate_scale_perform()
2304 update_lq = rs_tpc_perform(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2314 rs_update_rate_tbl(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2338 next_column = rs_get_next_column(mvm, lq_sta, sta, tbl); in rs_rate_scale_perform()
2340 int ret = rs_switch_to_column(mvm, lq_sta, sta, in rs_rate_scale_perform()
2361 rs_update_rate_tbl(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2383 ieee80211_stop_tx_ba_session(sta, tid); in rs_rate_scale_perform()
2400 lq_sta, sta); in rs_rate_scale_perform()
2530 struct ieee80211_sta *sta, in rs_initialize_lq() argument
2539 if (!sta || !lq_sta) in rs_initialize_lq()
2560 rs_fill_lq_cmd(mvm, sta, lq_sta, rate); in rs_initialize_lq()
2565 static void rs_get_rate(void *mvm_r, struct ieee80211_sta *sta, void *mvm_sta, in rs_get_rate() argument
2575 if (sta && !iwl_mvm_sta_from_mac80211(sta)->vif) { in rs_get_rate()
2579 sta = NULL; in rs_get_rate()
2592 if (rate_control_send_low(sta, mvm_sta, txrc)) in rs_get_rate()
2601 static void *rs_alloc_sta(void *mvm_rate, struct ieee80211_sta *sta, in rs_alloc_sta() argument
2604 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in rs_alloc_sta()
2641 static void rs_vht_set_enabled_rates(struct ieee80211_sta *sta, in rs_vht_set_enabled_rates() argument
2655 sta->bandwidth == IEEE80211_STA_RX_BW_20) in rs_vht_set_enabled_rates()
2662 if (sta->rx_nss < 2) in rs_vht_set_enabled_rates()
2673 sta->bandwidth == IEEE80211_STA_RX_BW_20) in rs_vht_set_enabled_rates()
2682 struct ieee80211_sta *sta, in rs_ht_init() argument
2713 struct ieee80211_sta *sta, in rs_vht_init() argument
2717 rs_vht_set_enabled_rates(sta, vht_cap, lq_sta); in rs_vht_init()
2804 void iwl_mvm_rs_rate_init(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in iwl_mvm_rs_rate_init() argument
2809 struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap; in iwl_mvm_rs_rate_init()
2810 struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap; in iwl_mvm_rs_rate_init()
2811 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rs_rate_init()
2842 supp = sta->supp_rates[sband->band]; in iwl_mvm_rs_rate_init()
2849 rs_ht_init(mvm, sta, lq_sta, ht_cap); in iwl_mvm_rs_rate_init()
2851 rs_vht_init(mvm, sta, lq_sta, vht_cap); in iwl_mvm_rs_rate_init()
2886 rs_initialize_lq(mvm, sta, lq_sta, band, init); in iwl_mvm_rs_rate_init()
2892 struct ieee80211_sta *sta, void *priv_sta, in rs_rate_update() argument
2900 if (!iwl_mvm_sta_from_mac80211(sta)->vif) in rs_rate_update()
2905 ieee80211_stop_tx_ba_session(sta, tid); in rs_rate_update()
2907 iwl_mvm_rs_rate_init(mvm, sta, sband->band, false); in rs_rate_update()
2997 struct ieee80211_sta *sta, in rs_build_rates_table() argument
3013 rs_stbc_allow(mvm, sta, lq_sta)) in rs_build_rates_table()
3068 struct ieee80211_sta *sta) in rs_bfer_active_iter() argument
3071 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_bfer_active_iter()
3075 if (sta == data->exclude_sta) in rs_bfer_active_iter()
3086 static int rs_bfer_priority(struct iwl_mvm_sta *sta) in rs_bfer_priority() argument
3089 enum nl80211_iftype viftype = ieee80211_vif_type_p2p(sta->vif); in rs_bfer_priority()
3103 WARN_ONCE(true, "viftype %d sta_id %d", viftype, sta->sta_id); in rs_bfer_priority()
3125 struct ieee80211_sta *sta, in rs_set_lq_ss_params() argument
3130 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_set_lq_ss_params()
3132 .exclude_sta = sta, in rs_set_lq_ss_params()
3138 if (!iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) in rs_set_lq_ss_params()
3201 struct ieee80211_sta *sta, in rs_fill_lq_cmd() argument
3221 if (WARN_ON_ONCE(!sta || !initial_rate)) in rs_fill_lq_cmd()
3224 rs_build_rates_table(mvm, sta, lq_sta, initial_rate); in rs_fill_lq_cmd()
3227 rs_set_lq_ss_params(mvm, sta, lq_sta, initial_rate); in rs_fill_lq_cmd()
3232 mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_fill_lq_cmd()
3258 cpu_to_le16(iwl_mvm_coex_agg_time_limit(mvm, sta)); in rs_fill_lq_cmd()
3271 static void rs_free_sta(void *mvm_r, struct ieee80211_sta *sta, in rs_free_sta() argument
3716 struct ieee80211_sta *sta, void *mvm_sta) in rs_rate_init_stub() argument