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()
187 static bool rs_siso_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_siso_allow() argument
191 if (!sta->ht_cap.ht_supported) in rs_siso_allow()
197 static bool rs_sgi_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_sgi_allow() argument
201 struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap; in rs_sgi_allow()
202 struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap; in rs_sgi_allow()
399 struct ieee80211_sta *sta,
403 struct ieee80211_sta *sta,
605 struct ieee80211_sta *sta) in rs_tl_turn_on_agg_for_tid() argument
610 sta->addr, tid); in rs_tl_turn_on_agg_for_tid()
611 ret = ieee80211_start_tx_ba_session(sta, tid, 5000); in rs_tl_turn_on_agg_for_tid()
620 ieee80211_stop_tx_ba_session(sta, tid); in rs_tl_turn_on_agg_for_tid()
627 struct ieee80211_sta *sta) in rs_tl_turn_on_agg() argument
630 rs_tl_turn_on_agg_for_tid(mvm, lq_data, tid, sta); in rs_tl_turn_on_agg()
1156 void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in iwl_mvm_rs_tx_status() argument
1168 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rs_tx_status()
1227 ieee80211_stop_tx_ba_session(sta, t); in iwl_mvm_rs_tx_status()
1229 iwl_mvm_rs_rate_init(mvm, sta, info->band, false); in iwl_mvm_rs_tx_status()
1362 if (sta->supp_rates[info->band]) in iwl_mvm_rs_tx_status()
1363 rs_rate_scale_perform(mvm, sta, lq_sta, tid); in iwl_mvm_rs_tx_status()
1371 struct ieee80211_sta *sta, void *priv_sta, in rs_mac80211_tx_status() argument
1379 if (!iwl_mvm_sta_from_mac80211(sta)->vif) in rs_mac80211_tx_status()
1386 iwl_mvm_rs_tx_status(mvm, sta, rs_get_tid(hdr), info); in rs_mac80211_tx_status()
1559 static u32 rs_bw_from_sta_bw(struct ieee80211_sta *sta) in rs_bw_from_sta_bw() argument
1561 if (sta->bandwidth >= IEEE80211_STA_RX_BW_80) in rs_bw_from_sta_bw()
1563 else if (sta->bandwidth >= IEEE80211_STA_RX_BW_40) in rs_bw_from_sta_bw()
1656 struct ieee80211_sta *sta, in rs_update_rate_tbl() argument
1660 rs_fill_lq_cmd(mvm, sta, lq_sta, &tbl->rate); in rs_update_rate_tbl()
1665 struct ieee80211_sta *sta, in rs_tweak_rate_tbl() argument
1670 if (sta->bandwidth != IEEE80211_STA_RX_BW_80) in rs_tweak_rate_tbl()
1711 struct ieee80211_sta *sta, in rs_get_next_column() argument
1746 if (allow_func && !allow_func(mvm, sta, &tbl->rate, in rs_get_next_column()
1761 rs_bw_from_sta_bw(sta)); in rs_get_next_column()
1795 struct ieee80211_sta *sta, in rs_switch_to_column() argument
1834 rate->bw = rs_bw_from_sta_bw(sta); in rs_switch_to_column()
1957 static bool rs_stbc_allow(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in rs_stbc_allow() argument
1966 if (!iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) in rs_stbc_allow()
2083 struct ieee80211_sta *sta, in rs_tpc_perform() argument
2087 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in rs_tpc_perform()
2175 struct ieee80211_sta *sta, in rs_rate_scale_perform() argument
2196 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in rs_rate_scale_perform()
2236 rs_update_rate_tbl(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2349 !iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) { in rs_rate_scale_perform()
2382 update_lq = rs_tpc_perform(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2393 rs_tweak_rate_tbl(mvm, sta, lq_sta, tbl, scale_action); in rs_rate_scale_perform()
2394 rs_update_rate_tbl(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2418 next_column = rs_get_next_column(mvm, lq_sta, sta, tbl); in rs_rate_scale_perform()
2420 int ret = rs_switch_to_column(mvm, lq_sta, sta, in rs_rate_scale_perform()
2441 rs_update_rate_tbl(mvm, sta, lq_sta, tbl); in rs_rate_scale_perform()
2463 ieee80211_stop_tx_ba_session(sta, tid); in rs_rate_scale_perform()
2480 lq_sta, sta); in rs_rate_scale_perform()
2558 struct ieee80211_sta *sta, in rs_init_optimal_rate() argument
2572 rate->bw = rs_bw_from_sta_bw(sta); in rs_init_optimal_rate()
2573 rate->sgi = rs_sgi_allow(mvm, sta, rate, NULL); in rs_init_optimal_rate()
2735 struct ieee80211_sta *sta, in rs_initialize_lq() argument
2744 if (!sta || !lq_sta) in rs_initialize_lq()
2756 rs_init_optimal_rate(mvm, sta, lq_sta); in rs_initialize_lq()
2765 rs_fill_lq_cmd(mvm, sta, lq_sta, rate); in rs_initialize_lq()
2770 static void rs_get_rate(void *mvm_r, struct ieee80211_sta *sta, void *mvm_sta, in rs_get_rate() argument
2782 if (sta && !iwl_mvm_sta_from_mac80211(sta)->vif) { in rs_get_rate()
2786 sta = NULL; in rs_get_rate()
2799 if (rate_control_send_low(sta, mvm_sta, txrc)) in rs_get_rate()
2818 static void *rs_alloc_sta(void *mvm_rate, struct ieee80211_sta *sta, in rs_alloc_sta() argument
2821 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in rs_alloc_sta()
2859 static void rs_vht_set_enabled_rates(struct ieee80211_sta *sta, in rs_vht_set_enabled_rates() argument
2873 sta->bandwidth == IEEE80211_STA_RX_BW_20) in rs_vht_set_enabled_rates()
2880 if (sta->rx_nss < 2) in rs_vht_set_enabled_rates()
2891 sta->bandwidth == IEEE80211_STA_RX_BW_20) in rs_vht_set_enabled_rates()
2900 struct ieee80211_sta *sta, in rs_ht_init() argument
2931 struct ieee80211_sta *sta, in rs_vht_init() argument
2935 rs_vht_set_enabled_rates(sta, vht_cap, lq_sta); in rs_vht_init()
3022 void iwl_mvm_rs_rate_init(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in iwl_mvm_rs_rate_init() argument
3027 struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap; in iwl_mvm_rs_rate_init()
3028 struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap; in iwl_mvm_rs_rate_init()
3029 struct iwl_mvm_sta *sta_priv = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rs_rate_init()
3060 supp = sta->supp_rates[sband->band]; in iwl_mvm_rs_rate_init()
3067 rs_ht_init(mvm, sta, lq_sta, ht_cap); in iwl_mvm_rs_rate_init()
3069 rs_vht_init(mvm, sta, lq_sta, vht_cap); in iwl_mvm_rs_rate_init()
3101 rs_initialize_lq(mvm, sta, lq_sta, band, init); in iwl_mvm_rs_rate_init()
3107 struct ieee80211_sta *sta, void *priv_sta, in rs_rate_update() argument
3115 if (!iwl_mvm_sta_from_mac80211(sta)->vif) in rs_rate_update()
3120 ieee80211_stop_tx_ba_session(sta, tid); in rs_rate_update()
3122 iwl_mvm_rs_rate_init(mvm, sta, sband->band, false); in rs_rate_update()
3212 struct ieee80211_sta *sta, in rs_build_rates_table() argument
3228 rs_stbc_allow(mvm, sta, lq_sta)) in rs_build_rates_table()
3283 struct ieee80211_sta *sta) in rs_bfer_active_iter() argument
3286 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_bfer_active_iter()
3290 if (sta == data->exclude_sta) in rs_bfer_active_iter()
3301 static int rs_bfer_priority(struct iwl_mvm_sta *sta) in rs_bfer_priority() argument
3304 enum nl80211_iftype viftype = ieee80211_vif_type_p2p(sta->vif); in rs_bfer_priority()
3318 WARN_ONCE(true, "viftype %d sta_id %d", viftype, sta->sta_id); in rs_bfer_priority()
3340 struct ieee80211_sta *sta, in rs_set_lq_ss_params() argument
3345 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_set_lq_ss_params()
3347 .exclude_sta = sta, in rs_set_lq_ss_params()
3353 if (!iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta)) in rs_set_lq_ss_params()
3416 struct ieee80211_sta *sta, in rs_fill_lq_cmd() argument
3436 if (WARN_ON_ONCE(!sta || !initial_rate)) in rs_fill_lq_cmd()
3439 rs_build_rates_table(mvm, sta, lq_sta, initial_rate); in rs_fill_lq_cmd()
3442 rs_set_lq_ss_params(mvm, sta, lq_sta, initial_rate); in rs_fill_lq_cmd()
3444 mvmsta = iwl_mvm_sta_from_mac80211(sta); in rs_fill_lq_cmd()
3470 cpu_to_le16(iwl_mvm_coex_agg_time_limit(mvm, sta)); in rs_fill_lq_cmd()
3483 static void rs_free_sta(void *mvm_r, struct ieee80211_sta *sta, in rs_free_sta() argument
3928 struct ieee80211_sta *sta, void *mvm_sta) in rs_rate_init_stub() argument