Lines Matching full:vif

8 					 struct ieee80211_vif *vif)  in iwl_mvm_mld_mac_add_interface()  argument
11 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_mac_add_interface()
33 ret = iwl_mvm_mac_ctxt_init(mvm, vif); in iwl_mvm_mld_mac_add_interface()
37 rcu_assign_pointer(mvm->vif_id_to_mac[mvmvif->id], vif); in iwl_mvm_mld_mac_add_interface()
45 ret = iwl_mvm_mld_mac_ctxt_add(mvm, vif); in iwl_mvm_mld_mac_add_interface()
50 ret = iwl_mvm_disable_beacon_filter(mvm, vif); in iwl_mvm_mld_mac_add_interface()
55 vif->type == NL80211_IFTYPE_STATION && !vif->p2p) { in iwl_mvm_mld_mac_add_interface()
57 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER | in iwl_mvm_mld_mac_add_interface()
67 !ieee80211_vif_is_mld(vif)) { in iwl_mvm_mld_mac_add_interface()
70 ret = iwl_mvm_add_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_mac_add_interface()
75 /* Save a pointer to p2p device vif, so it can later be used to in iwl_mvm_mld_mac_add_interface()
78 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) in iwl_mvm_mld_mac_add_interface()
79 mvm->p2p_device_vif = vif; in iwl_mvm_mld_mac_add_interface()
85 iwl_mvm_tcm_add_vif(mvm, vif); in iwl_mvm_mld_mac_add_interface()
87 if (vif->type == NL80211_IFTYPE_MONITOR) { in iwl_mvm_mld_mac_add_interface()
93 iwl_mvm_vif_dbgfs_add_link(mvm, vif); in iwl_mvm_mld_mac_add_interface()
96 vif->type == NL80211_IFTYPE_STATION && !vif->p2p && in iwl_mvm_mld_mac_add_interface()
98 iwl_mei_set_nic_info(vif->addr, mvm->nvm_data->hw_addr); in iwl_mvm_mld_mac_add_interface()
99 iwl_mei_set_netdev(ieee80211_vif_to_wdev(vif)->netdev); in iwl_mvm_mld_mac_add_interface()
100 mvm->csme_vif = vif; in iwl_mvm_mld_mac_add_interface()
103 if (vif->p2p || iwl_fw_lookup_cmd_ver(mvm->fw, PHY_CONTEXT_CMD, 1) < 5) in iwl_mvm_mld_mac_add_interface()
104 vif->driver_flags |= IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW; in iwl_mvm_mld_mac_add_interface()
111 vif->driver_flags &= ~(IEEE80211_VIF_BEACON_FILTER | in iwl_mvm_mld_mac_add_interface()
116 iwl_mvm_mld_mac_ctxt_remove(mvm, vif); in iwl_mvm_mld_mac_add_interface()
121 struct ieee80211_vif *vif) in iwl_mvm_mld_mac_remove_interface() argument
124 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_mac_remove_interface()
127 iwl_mvm_prepare_mac_removal(mvm, vif); in iwl_mvm_mld_mac_remove_interface()
129 if (!(vif->type == NL80211_IFTYPE_AP || in iwl_mvm_mld_mac_remove_interface()
130 vif->type == NL80211_IFTYPE_ADHOC)) in iwl_mvm_mld_mac_remove_interface()
131 iwl_mvm_tcm_rm_vif(mvm, vif); in iwl_mvm_mld_mac_remove_interface()
135 if (vif == mvm->csme_vif) { in iwl_mvm_mld_mac_remove_interface()
142 vif->driver_flags &= ~(IEEE80211_VIF_BEACON_FILTER | in iwl_mvm_mld_mac_remove_interface()
146 if (vif->bss_conf.ftm_responder) in iwl_mvm_mld_mac_remove_interface()
149 iwl_mvm_vif_dbgfs_rm_link(mvm, vif); in iwl_mvm_mld_mac_remove_interface()
154 if (vif->type == NL80211_IFTYPE_AP || in iwl_mvm_mld_mac_remove_interface()
155 vif->type == NL80211_IFTYPE_ADHOC) { in iwl_mvm_mld_mac_remove_interface()
157 if (vif == mvm->noa_vif) { in iwl_mvm_mld_mac_remove_interface()
171 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { in iwl_mvm_mld_mac_remove_interface()
177 iwl_mvm_remove_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_mac_remove_interface()
179 iwl_mvm_disable_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_mac_remove_interface()
182 iwl_mvm_mld_mac_ctxt_remove(mvm, vif); in iwl_mvm_mld_mac_remove_interface()
192 if (vif->type == NL80211_IFTYPE_MONITOR) { in iwl_mvm_mld_mac_remove_interface()
238 struct ieee80211_vif *vif) in iwl_mvm_esr_mode_active() argument
240 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_esr_mode_active()
246 vif->driver_flags |= IEEE80211_VIF_EML_ACTIVE; in iwl_mvm_esr_mode_active()
248 iwl_mvm_update_smps_on_active_links(mvm, vif, IWL_MVM_SMPS_REQ_FW, in iwl_mvm_esr_mode_active()
264 if (vif->active_links == mvmvif->link_selection_res && in iwl_mvm_esr_mode_active()
265 !WARN_ON(!(vif->active_links & BIT(mvmvif->link_selection_primary)))) in iwl_mvm_esr_mode_active()
268 mvmvif->primary_link = __ffs(vif->active_links); in iwl_mvm_esr_mode_active()
288 struct ieee80211_vif *vif, in __iwl_mvm_mld_assign_vif_chanctx() argument
295 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in __iwl_mvm_mld_assign_vif_chanctx()
311 if (vif->type == NL80211_IFTYPE_AP) { in __iwl_mvm_mld_assign_vif_chanctx()
312 ret = iwl_mvm_mld_mac_ctxt_changed(mvm, vif, false); in __iwl_mvm_mld_assign_vif_chanctx()
314 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); in __iwl_mvm_mld_assign_vif_chanctx()
323 ret = iwl_mvm_esr_mode_active(mvm, vif); in __iwl_mvm_mld_assign_vif_chanctx()
333 if (vif->type == NL80211_IFTYPE_AP) in __iwl_mvm_mld_assign_vif_chanctx()
338 ret = iwl_mvm_link_changed(mvm, vif, link_conf, 0, false); in __iwl_mvm_mld_assign_vif_chanctx()
355 iwl_mvm_rs_rate_init(mvm, vif, mvmvif->ap_sta, in __iwl_mvm_mld_assign_vif_chanctx()
362 ret = iwl_mvm_link_changed(mvm, vif, link_conf, in __iwl_mvm_mld_assign_vif_chanctx()
369 if (vif->type == NL80211_IFTYPE_STATION) in __iwl_mvm_mld_assign_vif_chanctx()
370 iwl_mvm_send_ap_tx_power_constraint_cmd(mvm, vif, in __iwl_mvm_mld_assign_vif_chanctx()
380 if (vif->type == NL80211_IFTYPE_MONITOR) { in __iwl_mvm_mld_assign_vif_chanctx()
381 ret = iwl_mvm_mld_add_snif_sta(mvm, vif, link_conf); in __iwl_mvm_mld_assign_vif_chanctx()
389 iwl_mvm_link_changed(mvm, vif, link_conf, LINK_CONTEXT_MODIFY_ACTIVE, in __iwl_mvm_mld_assign_vif_chanctx()
398 struct ieee80211_vif *vif, in iwl_mvm_mld_assign_vif_chanctx() argument
405 if (ieee80211_vif_type_p2p(vif) != NL80211_IFTYPE_STATION) { in iwl_mvm_mld_assign_vif_chanctx()
408 ret = iwl_mvm_esr_non_bss_link(mvm, vif, link_conf->link_id, in iwl_mvm_mld_assign_vif_chanctx()
419 return __iwl_mvm_mld_assign_vif_chanctx(mvm, vif, link_conf, ctx, false); in iwl_mvm_mld_assign_vif_chanctx()
423 struct ieee80211_vif *vif) in iwl_mvm_esr_mode_inactive() argument
425 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_esr_mode_inactive()
431 vif->driver_flags &= ~IEEE80211_VIF_EML_ACTIVE; in iwl_mvm_esr_mode_inactive()
433 iwl_mvm_update_smps_on_active_links(mvm, vif, IWL_MVM_SMPS_REQ_FW, in iwl_mvm_esr_mode_inactive()
436 for_each_vif_active_link(vif, link_conf, link_id) { in iwl_mvm_esr_mode_inactive()
478 struct ieee80211_vif *vif, in __iwl_mvm_mld_unassign_vif_chanctx() argument
484 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in __iwl_mvm_mld_unassign_vif_chanctx()
492 if (vif->type == NL80211_IFTYPE_AP && switching_chanctx) { in __iwl_mvm_mld_unassign_vif_chanctx()
499 rcu_assign_pointer(mvm->csa_tx_blocked_vif, vif); in __iwl_mvm_mld_unassign_vif_chanctx()
504 iwl_mvm_link_changed(mvm, vif, link_conf, in __iwl_mvm_mld_unassign_vif_chanctx()
508 int ret = iwl_mvm_esr_mode_inactive(mvm, vif); in __iwl_mvm_mld_unassign_vif_chanctx()
515 if (vif->type == NL80211_IFTYPE_MONITOR) in __iwl_mvm_mld_unassign_vif_chanctx()
516 iwl_mvm_mld_rm_snif_sta(mvm, vif); in __iwl_mvm_mld_unassign_vif_chanctx()
525 struct ieee80211_vif *vif, in iwl_mvm_mld_unassign_vif_chanctx() argument
529 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_unassign_vif_chanctx()
533 __iwl_mvm_mld_unassign_vif_chanctx(mvm, vif, link_conf, ctx, false); in iwl_mvm_mld_unassign_vif_chanctx()
535 if (!ieee80211_vif_is_mld(vif) && !mvmvif->ap_sta && in iwl_mvm_mld_unassign_vif_chanctx()
536 !WARN_ON_ONCE(vif->cfg.assoc)) { in iwl_mvm_mld_unassign_vif_chanctx()
537 iwl_mvm_remove_link(mvm, vif, link_conf); in iwl_mvm_mld_unassign_vif_chanctx()
538 iwl_mvm_add_link(mvm, vif, link_conf); in iwl_mvm_mld_unassign_vif_chanctx()
543 if (ieee80211_vif_type_p2p(vif) != NL80211_IFTYPE_STATION) in iwl_mvm_mld_unassign_vif_chanctx()
544 iwl_mvm_esr_non_bss_link(mvm, vif, link_conf->link_id, false); in iwl_mvm_mld_unassign_vif_chanctx()
576 struct ieee80211_vif *vif, in iwl_mvm_send_ap_tx_power_constraint_cmd() argument
581 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_send_ap_tx_power_constraint_cmd()
625 struct ieee80211_vif *vif, in iwl_mvm_mld_start_ap_ibss() argument
629 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_start_ap_ibss()
634 if (vif->type == NL80211_IFTYPE_AP) in iwl_mvm_mld_start_ap_ibss()
635 iwl_mvm_send_ap_tx_power_constraint_cmd(mvm, vif, in iwl_mvm_mld_start_ap_ibss()
639 ret = iwl_mvm_mac_ctxt_beacon_changed(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
644 ret = iwl_mvm_link_changed(mvm, vif, link_conf, in iwl_mvm_mld_start_ap_ibss()
651 ret = iwl_mvm_mld_add_mcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
658 ret = iwl_mvm_mld_add_bcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
662 if (iwl_mvm_start_ap_ibss_common(hw, vif, &ret)) in iwl_mvm_mld_start_ap_ibss()
665 /* Need to update the P2P Device MAC (only GO, IBSS is single vif) */ in iwl_mvm_mld_start_ap_ibss()
666 if (vif->p2p && mvm->p2p_device_vif) in iwl_mvm_mld_start_ap_ibss()
675 iwl_mvm_ftm_restart_responder(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
682 iwl_mvm_mld_rm_bcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
684 iwl_mvm_mld_rm_mcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
689 struct ieee80211_vif *vif, in iwl_mvm_mld_start_ap() argument
692 return iwl_mvm_mld_start_ap_ibss(hw, vif, link_conf); in iwl_mvm_mld_start_ap()
696 struct ieee80211_vif *vif) in iwl_mvm_mld_start_ibss() argument
698 return iwl_mvm_mld_start_ap_ibss(hw, vif, &vif->bss_conf); in iwl_mvm_mld_start_ibss()
702 struct ieee80211_vif *vif, in iwl_mvm_mld_stop_ap_ibss() argument
709 iwl_mvm_stop_ap_ibss_common(mvm, vif); in iwl_mvm_mld_stop_ap_ibss()
711 /* Need to update the P2P Device MAC (only GO, IBSS is single vif) */ in iwl_mvm_mld_stop_ap_ibss()
712 if (vif->p2p && mvm->p2p_device_vif) in iwl_mvm_mld_stop_ap_ibss()
715 iwl_mvm_ftm_responder_clear(mvm, vif); in iwl_mvm_mld_stop_ap_ibss()
717 iwl_mvm_mld_rm_bcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_stop_ap_ibss()
718 iwl_mvm_mld_rm_mcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_stop_ap_ibss()
724 struct ieee80211_vif *vif, in iwl_mvm_mld_stop_ap() argument
727 iwl_mvm_mld_stop_ap_ibss(hw, vif, link_conf); in iwl_mvm_mld_stop_ap()
731 struct ieee80211_vif *vif) in iwl_mvm_mld_stop_ibss() argument
733 iwl_mvm_mld_stop_ap_ibss(hw, vif, &vif->bss_conf); in iwl_mvm_mld_stop_ibss()
737 struct ieee80211_vif *vif, in iwl_mvm_mld_mac_sta_state() argument
749 return iwl_mvm_mac_sta_state_common(hw, vif, sta, old_state, new_state, in iwl_mvm_mld_mac_sta_state()
754 struct ieee80211_vif *vif, in iwl_mvm_esr_bw_criteria() argument
761 for_each_vif_active_link(vif, other_link, link_id) { in iwl_mvm_esr_bw_criteria()
774 struct ieee80211_vif *vif, in iwl_mvm_mld_link_info_changed_station() argument
778 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_link_info_changed_station()
790 if (changes & BSS_CHANGED_QOS && vif->cfg.assoc && link_conf->qos) in iwl_mvm_mld_link_info_changed_station()
796 if (vif->cfg.assoc && (has_he || has_eht)) { in iwl_mvm_mld_link_info_changed_station()
802 ieee80211_vif_link_active(vif, link_conf->link_id) && in iwl_mvm_mld_link_info_changed_station()
804 !iwl_mvm_esr_bw_criteria(mvm, vif, link_conf)) in iwl_mvm_mld_link_info_changed_station()
805 iwl_mvm_exit_esr(mvm, vif, in iwl_mvm_mld_link_info_changed_station()
807 iwl_mvm_get_primary_link(vif)); in iwl_mvm_mld_link_info_changed_station()
810 if (vif->cfg.assoc) in iwl_mvm_mld_link_info_changed_station()
814 ret = iwl_mvm_link_changed(mvm, vif, link_conf, link_changes, in iwl_mvm_mld_link_info_changed_station()
820 ret = iwl_mvm_mld_mac_ctxt_changed(mvm, vif, false); in iwl_mvm_mld_link_info_changed_station()
822 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); in iwl_mvm_mld_link_info_changed_station()
827 iwl_mvm_bss_info_changed_station_common(mvm, vif, link_conf, changes); in iwl_mvm_mld_link_info_changed_station()
843 struct ieee80211_vif *vif) in iwl_mvm_mld_vif_delete_all_stas() argument
845 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_vif_delete_all_stas()
857 iwl_mvm_sec_key_remove_ap(mvm, vif, link, i); in iwl_mvm_mld_vif_delete_all_stas()
867 struct ieee80211_vif *vif, in iwl_mvm_mld_vif_cfg_changed_station() argument
870 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_vif_cfg_changed_station()
882 ret = iwl_mvm_mld_mac_ctxt_changed(mvm, vif, false); in iwl_mvm_mld_vif_cfg_changed_station()
884 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); in iwl_mvm_mld_vif_cfg_changed_station()
886 mvmvif->associated = vif->cfg.assoc; in iwl_mvm_mld_vif_cfg_changed_station()
889 if (vif->cfg.assoc) { in iwl_mvm_mld_vif_cfg_changed_station()
894 iwl_mvm_sf_update(mvm, vif, false); in iwl_mvm_mld_vif_cfg_changed_station()
895 iwl_mvm_power_vif_assoc(mvm, vif); in iwl_mvm_mld_vif_cfg_changed_station()
901 if (vif->p2p) { in iwl_mvm_mld_vif_cfg_changed_station()
902 iwl_mvm_update_smps(mvm, vif, in iwl_mvm_mld_vif_cfg_changed_station()
908 link_conf = rcu_dereference(vif->link_conf[i]); in iwl_mvm_mld_vif_cfg_changed_station()
920 ffs(vif->active_links) - 1; in iwl_mvm_mld_vif_cfg_changed_station()
931 iwl_mvm_protect_assoc(mvm, vif, 0, link_id); in iwl_mvm_mld_vif_cfg_changed_station()
934 iwl_mvm_sf_update(mvm, vif, false); in iwl_mvm_mld_vif_cfg_changed_station()
937 iwl_mvm_power_vif_assoc(mvm, vif); in iwl_mvm_mld_vif_cfg_changed_station()
944 ret = iwl_mvm_sf_update(mvm, vif, false); in iwl_mvm_mld_vif_cfg_changed_station()
951 * station has been added, but before the vif is set in iwl_mvm_mld_vif_cfg_changed_station()
953 * then configure the vif. Since the vif is not in iwl_mvm_mld_vif_cfg_changed_station()
957 iwl_mvm_mld_vif_delete_all_stas(mvm, vif); in iwl_mvm_mld_vif_cfg_changed_station()
960 iwl_mvm_bss_info_changed_station_assoc(mvm, vif, changes); in iwl_mvm_mld_vif_cfg_changed_station()
970 ieee80211_vif_is_mld(vif) && mvmvif->authorized) in iwl_mvm_mld_vif_cfg_changed_station()
977 struct ieee80211_vif *vif, in iwl_mvm_mld_link_info_changed_ap_ibss() argument
981 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_link_info_changed_ap_ibss()
999 iwl_mvm_link_changed(mvm, vif, link_conf, in iwl_mvm_mld_link_info_changed_ap_ibss()
1001 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); in iwl_mvm_mld_link_info_changed_ap_ibss()
1005 iwl_mvm_mac_ctxt_beacon_changed(mvm, vif, link_conf)) in iwl_mvm_mld_link_info_changed_ap_ibss()
1010 int ret = iwl_mvm_ftm_start_responder(mvm, vif, link_conf); in iwl_mvm_mld_link_info_changed_ap_ibss()
1019 struct ieee80211_vif *vif, in iwl_mvm_mld_link_info_changed() argument
1027 switch (vif->type) { in iwl_mvm_mld_link_info_changed()
1029 iwl_mvm_mld_link_info_changed_station(mvm, vif, link_conf, in iwl_mvm_mld_link_info_changed()
1034 iwl_mvm_mld_link_info_changed_ap_ibss(mvm, vif, link_conf, in iwl_mvm_mld_link_info_changed()
1039 iwl_mvm_update_mu_groups(mvm, vif); in iwl_mvm_mld_link_info_changed()
1049 iwl_mvm_set_tx_power(mvm, vif, link_conf->txpower); in iwl_mvm_mld_link_info_changed()
1054 struct ieee80211_vif *vif, in iwl_mvm_mld_vif_cfg_changed() argument
1061 if (changes & BSS_CHANGED_IDLE && !vif->cfg.idle) in iwl_mvm_mld_vif_cfg_changed()
1064 if (vif->type == NL80211_IFTYPE_STATION) in iwl_mvm_mld_vif_cfg_changed()
1065 iwl_mvm_mld_vif_cfg_changed_station(mvm, vif, changes); in iwl_mvm_mld_vif_cfg_changed()
1083 struct ieee80211_vif *vif, in iwl_mvm_mld_config_iface_filter() argument
1094 if (vif->type != NL80211_IFTYPE_STATION || !vif->cfg.assoc || in iwl_mvm_mld_config_iface_filter()
1095 !vif->p2p) in iwl_mvm_mld_config_iface_filter()
1099 iwl_mvm_mld_mac_ctxt_changed(mvm, vif, false); in iwl_mvm_mld_config_iface_filter()
1104 struct ieee80211_vif *vif, in iwl_mvm_mld_mac_conf_tx() argument
1109 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_mac_conf_tx()
1120 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { in iwl_mvm_mld_mac_conf_tx()
1122 return iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, in iwl_mvm_mld_mac_conf_tx()
1129 static int iwl_mvm_mld_roc_link(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_mld_roc_link() argument
1136 ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, 0, false); in iwl_mvm_mld_roc_link()
1140 ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, in iwl_mvm_mld_roc_link()
1151 return iwl_mvm_mld_add_bcast_sta(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_roc_link()
1154 static int iwl_mvm_mld_roc(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in iwl_mvm_mld_roc() argument
1163 return iwl_mvm_roc_common(hw, vif, channel, duration, type, &ops); in iwl_mvm_mld_roc()
1168 struct ieee80211_vif *vif, in iwl_mvm_mld_change_vif_links() argument
1173 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_change_vif_links()
1210 err = iwl_mvm_disable_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_change_vif_links()
1220 err = iwl_mvm_disable_link(mvm, vif, link_conf); in iwl_mvm_mld_change_vif_links()
1228 link_conf = link_conf_dereference_protected(vif, i); in iwl_mvm_mld_change_vif_links()
1236 err = iwl_mvm_add_link(mvm, vif, link_conf); in iwl_mvm_mld_change_vif_links()
1245 err = iwl_mvm_add_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_change_vif_links()
1268 struct ieee80211_vif *vif, in iwl_mvm_mld_change_sta_links() argument
1275 return iwl_mvm_mld_update_sta_links(mvm, vif, sta, old_links, new_links); in iwl_mvm_mld_change_sta_links()
1278 bool iwl_mvm_vif_has_esr_cap(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_vif_has_esr_cap() argument
1284 if (!ieee80211_vif_is_mld(vif) || !vif->cfg.assoc || in iwl_mvm_vif_has_esr_cap()
1285 hweight16(ieee80211_vif_usable_links(vif)) == 1) in iwl_mvm_vif_has_esr_cap()
1288 if (!(vif->cfg.eml_cap & IEEE80211_EML_CAP_EMLSR_SUPP)) in iwl_mvm_vif_has_esr_cap()
1292 ieee80211_vif_type_p2p(vif)); in iwl_mvm_vif_has_esr_cap()
1298 struct ieee80211_vif *vif, in iwl_mvm_mld_can_activate_links() argument
1310 if (n_links > iwl_mvm_max_active_links(mvm, vif)) in iwl_mvm_mld_can_activate_links()
1315 iwl_mvm_vif_has_esr_cap(mvm, vif); in iwl_mvm_mld_can_activate_links()
1319 iwl_mvm_mld_can_neg_ttlm(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in iwl_mvm_mld_can_neg_ttlm() argument
1338 struct ieee80211_vif *vif, in iwl_mvm_mld_mac_pre_channel_switch() argument
1341 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_mac_pre_channel_switch()
1347 u8 primary = iwl_mvm_get_primary_link(vif); in iwl_mvm_mld_mac_pre_channel_switch()
1352 selected = iwl_mvm_get_other_link(vif, primary); in iwl_mvm_mld_mac_pre_channel_switch()
1372 iwl_mvm_exit_esr(mvm, vif, IWL_MVM_ESR_EXIT_CSA, selected); in iwl_mvm_mld_mac_pre_channel_switch()
1385 ret = iwl_mvm_pre_channel_switch(mvm, vif, chsw); in iwl_mvm_mld_mac_pre_channel_switch()