Lines Matching refs:sta
9 u32 iwl_mvm_sta_fw_id_mask(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in iwl_mvm_sta_fw_id_mask() argument
18 if (!sta) in iwl_mvm_sta_fw_id_mask()
21 mvmsta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_sta_fw_id_mask()
25 if (!sta->valid_links) in iwl_mvm_sta_fw_id_mask()
29 for_each_sta_active_link(vif, sta, link_sta, link_id) { in iwl_mvm_sta_fw_id_mask()
63 struct iwl_mvm_int_sta *sta, in iwl_mvm_mld_add_int_sta_to_fw() argument
71 cmd.sta_id = cpu_to_le32((u8)sta->sta_id); in iwl_mvm_mld_add_int_sta_to_fw()
75 cmd.station_type = cpu_to_le32(sta->type); in iwl_mvm_mld_add_int_sta_to_fw()
79 sta->type == STATION_TYPE_BCAST_MGMT) in iwl_mvm_mld_add_int_sta_to_fw()
119 struct iwl_mvm_int_sta *sta, in iwl_mvm_add_aux_sta_to_fw() argument
125 .sta_id = cpu_to_le32(sta->sta_id), in iwl_mvm_add_aux_sta_to_fw()
140 struct iwl_mvm_int_sta *sta, in iwl_mvm_mld_add_int_sta_with_queue() argument
149 if (WARN_ON_ONCE(sta->sta_id == IWL_MVM_INVALID_STA)) in iwl_mvm_mld_add_int_sta_with_queue()
152 if (sta->type == STATION_TYPE_AUX) in iwl_mvm_mld_add_int_sta_with_queue()
153 ret = iwl_mvm_add_aux_sta_to_fw(mvm, sta, link_id); in iwl_mvm_mld_add_int_sta_with_queue()
155 ret = iwl_mvm_mld_add_int_sta_to_fw(mvm, sta, addr, link_id); in iwl_mvm_mld_add_int_sta_with_queue()
163 txq = iwl_mvm_tvqm_enable_txq(mvm, NULL, sta->sta_id, tid, in iwl_mvm_mld_add_int_sta_with_queue()
166 iwl_mvm_mld_rm_sta_from_fw(mvm, sta->sta_id); in iwl_mvm_mld_add_int_sta_with_queue()
431 static int iwl_mvm_mld_cfg_sta(struct iwl_mvm *mvm, struct ieee80211_sta *sta, in iwl_mvm_mld_cfg_sta() argument
437 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_cfg_sta()
453 memcpy(&cmd.peer_mld_address, sta->addr, ETH_ALEN); in iwl_mvm_mld_cfg_sta()
457 cmd.assoc_id = cpu_to_le32(sta->aid); in iwl_mvm_mld_cfg_sta()
461 (sta->mfp || mvm_sta->sta_state < IEEE80211_STA_AUTHORIZED)) in iwl_mvm_mld_cfg_sta()
494 if (sta->wme) { in iwl_mvm_mld_cfg_sta()
496 cpu_to_le32(sta->max_sp ? sta->max_sp * 2 : 128); in iwl_mvm_mld_cfg_sta()
497 cmd.uapsd_acs = cpu_to_le32(iwl_mvm_get_sta_uapsd_acs(sta)); in iwl_mvm_mld_cfg_sta()
508 cmd.htc_flags = iwl_mvm_get_sta_htc_flags(sta, link_sta); in iwl_mvm_mld_cfg_sta()
552 struct ieee80211_sta *sta, in iwl_mvm_mld_alloc_sta_link() argument
556 link_sta_dereference_protected(sta, link_id); in iwl_mvm_mld_alloc_sta_link()
557 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_alloc_sta_link()
565 if (rcu_access_pointer(sta->link[link_id]) == &sta->deflink) { in iwl_mvm_mld_alloc_sta_link()
575 rcu_assign_pointer(mvm->fw_id_to_mac_id[link->sta_id], sta); in iwl_mvm_mld_alloc_sta_link()
585 struct ieee80211_sta *sta) in iwl_mvm_mld_alloc_sta_links() argument
587 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_alloc_sta_links()
594 for_each_sta_active_link(vif, sta, link_sta, link_id) { in iwl_mvm_mld_alloc_sta_links()
598 ret = iwl_mvm_mld_alloc_sta_link(mvm, vif, sta, link_id); in iwl_mvm_mld_alloc_sta_links()
610 static void iwl_mvm_mld_set_ap_sta_id(struct ieee80211_sta *sta, in iwl_mvm_mld_set_ap_sta_id() argument
614 if (!sta->tdls) { in iwl_mvm_mld_set_ap_sta_id()
624 struct ieee80211_sta *sta) in iwl_mvm_alloc_sta_after_restart() argument
626 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_alloc_sta_after_restart()
638 for_each_sta_active_link(vif, sta, link_sta, link_id) { in iwl_mvm_alloc_sta_after_restart()
655 ret = iwl_mvm_mld_cfg_sta(mvm, sta, vif, link_sta, in iwl_mvm_alloc_sta_after_restart()
660 rcu_assign_pointer(mvm->fw_id_to_mac_id[sta_id], sta); in iwl_mvm_alloc_sta_after_restart()
665 iwl_mvm_realloc_queues_after_restart(mvm, sta); in iwl_mvm_alloc_sta_after_restart()
671 struct ieee80211_sta *sta) in iwl_mvm_mld_add_sta() argument
674 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_add_sta()
683 ret = iwl_mvm_mld_alloc_sta_links(mvm, vif, sta); in iwl_mvm_mld_add_sta()
689 ret = iwl_mvm_sta_init(mvm, vif, sta, IWL_MVM_INVALID_STA, in iwl_mvm_mld_add_sta()
692 ret = iwl_mvm_alloc_sta_after_restart(mvm, vif, sta); in iwl_mvm_mld_add_sta()
699 ret = iwl_mvm_mld_update_sta(mvm, vif, sta); in iwl_mvm_mld_add_sta()
703 for_each_sta_active_link(vif, sta, link_sta, link_id) { in iwl_mvm_mld_add_sta()
715 ret = iwl_mvm_mld_cfg_sta(mvm, sta, vif, link_sta, link_conf, in iwl_mvm_mld_add_sta()
723 iwl_mvm_mld_set_ap_sta_id(sta, mvm_vif->link[link_id], in iwl_mvm_mld_add_sta()
745 struct ieee80211_sta *sta) in iwl_mvm_mld_update_sta() argument
747 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_update_sta()
754 for_each_sta_active_link(vif, sta, link_sta, link_id) { in iwl_mvm_mld_update_sta()
764 ret = iwl_mvm_mld_cfg_sta(mvm, sta, vif, link_sta, link_conf, in iwl_mvm_mld_update_sta()
778 struct ieee80211_sta *sta) in iwl_mvm_mld_disable_sta_queues() argument
780 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_disable_sta_queues()
781 u32 sta_mask = iwl_mvm_sta_fw_id_mask(mvm, sta, -1); in iwl_mvm_mld_disable_sta_queues()
795 for (i = 0; i < ARRAY_SIZE(sta->txq); i++) { in iwl_mvm_mld_disable_sta_queues()
797 iwl_mvm_txq_from_mac80211(sta->txq[i]); in iwl_mvm_mld_disable_sta_queues()
804 struct ieee80211_sta *sta) in iwl_mvm_mld_rm_sta() argument
806 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_rm_sta()
814 for_each_sta_active_link(vif, sta, link_sta, link_id) { in iwl_mvm_mld_rm_sta()
832 iwl_mvm_mld_disable_sta_queues(mvm, vif, sta); in iwl_mvm_mld_rm_sta()
834 for_each_sta_active_link(vif, sta, link_sta, link_id) { in iwl_mvm_mld_rm_sta()
840 stay_in_fw = iwl_mvm_sta_del(mvm, vif, sta, link_sta, &ret); in iwl_mvm_mld_rm_sta()
896 struct ieee80211_sta *sta, in iwl_mvm_mld_sta_modify_disable_tx_ap() argument
899 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_sta_modify_disable_tx_ap()
917 struct ieee80211_sta *sta; in iwl_mvm_mld_modify_all_sta_disable_tx() local
925 sta = rcu_dereference(mvm->fw_id_to_mac_id[i]); in iwl_mvm_mld_modify_all_sta_disable_tx()
926 if (IS_ERR_OR_NULL(sta)) in iwl_mvm_mld_modify_all_sta_disable_tx()
929 mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_modify_all_sta_disable_tx()
941 struct ieee80211_sta *sta, in iwl_mvm_mld_update_sta_queues() argument
945 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_update_sta_queues()
1029 struct ieee80211_sta *sta, in iwl_mvm_mld_update_sta_resources() argument
1035 ret = iwl_mvm_mld_update_sta_queues(mvm, sta, in iwl_mvm_mld_update_sta_resources()
1041 ret = iwl_mvm_mld_update_sta_keys(mvm, vif, sta, in iwl_mvm_mld_update_sta_resources()
1052 struct ieee80211_sta *sta, in iwl_mvm_mld_update_sta_links() argument
1055 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_mld_update_sta_links()
1086 ret = iwl_mvm_mld_update_sta_resources(mvm, vif, sta, in iwl_mvm_mld_update_sta_links()
1122 link_sta_dereference_protected(sta, link_id); in iwl_mvm_mld_update_sta_links()
1143 rcu_assign_pointer(mvm->fw_id_to_mac_id[sta_id], sta); in iwl_mvm_mld_update_sta_links()
1151 ret = iwl_mvm_mld_alloc_sta_link(mvm, vif, sta, in iwl_mvm_mld_update_sta_links()
1158 ieee80211_sta_recalc_aggregates(sta); in iwl_mvm_mld_update_sta_links()
1170 iwl_mvm_mld_set_ap_sta_id(sta, mvm_vif_link, in iwl_mvm_mld_update_sta_links()
1177 ret = iwl_mvm_mld_cfg_sta(mvm, sta, vif, link_sta, link_conf, in iwl_mvm_mld_update_sta_links()
1188 ret = iwl_mvm_mld_update_sta_resources(mvm, vif, sta, in iwl_mvm_mld_update_sta_links()