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()
21 vif->driver_flags |= IEEE80211_VIF_REMOVE_AP_AFTER_DISASSOC; in iwl_mvm_mld_mac_add_interface()
35 ret = iwl_mvm_mac_ctxt_init(mvm, vif); in iwl_mvm_mld_mac_add_interface()
39 rcu_assign_pointer(mvm->vif_id_to_mac[mvmvif->id], vif); in iwl_mvm_mld_mac_add_interface()
47 ret = iwl_mvm_mld_mac_ctxt_add(mvm, vif); in iwl_mvm_mld_mac_add_interface()
52 ret = iwl_mvm_disable_beacon_filter(mvm, vif); in iwl_mvm_mld_mac_add_interface()
57 vif->type == NL80211_IFTYPE_STATION && !vif->p2p) { in iwl_mvm_mld_mac_add_interface()
59 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER | in iwl_mvm_mld_mac_add_interface()
69 !ieee80211_vif_is_mld(vif)) { in iwl_mvm_mld_mac_add_interface()
72 ret = iwl_mvm_add_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_mac_add_interface()
77 /* Save a pointer to p2p device vif, so it can later be used to in iwl_mvm_mld_mac_add_interface()
80 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) in iwl_mvm_mld_mac_add_interface()
81 mvm->p2p_device_vif = vif; in iwl_mvm_mld_mac_add_interface()
87 iwl_mvm_tcm_add_vif(mvm, vif); in iwl_mvm_mld_mac_add_interface()
89 if (vif->type == NL80211_IFTYPE_MONITOR) { in iwl_mvm_mld_mac_add_interface()
95 iwl_mvm_vif_dbgfs_add_link(mvm, vif); in iwl_mvm_mld_mac_add_interface()
98 vif->type == NL80211_IFTYPE_STATION && !vif->p2p && in iwl_mvm_mld_mac_add_interface()
100 iwl_mei_set_nic_info(vif->addr, mvm->nvm_data->hw_addr); in iwl_mvm_mld_mac_add_interface()
101 iwl_mei_set_netdev(ieee80211_vif_to_wdev(vif)->netdev); in iwl_mvm_mld_mac_add_interface()
102 mvm->csme_vif = vif; in iwl_mvm_mld_mac_add_interface()
105 if (vif->p2p || iwl_fw_lookup_cmd_ver(mvm->fw, PHY_CONTEXT_CMD, 1) < 5) in iwl_mvm_mld_mac_add_interface()
106 vif->driver_flags |= IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW; in iwl_mvm_mld_mac_add_interface()
113 vif->driver_flags &= ~(IEEE80211_VIF_BEACON_FILTER | in iwl_mvm_mld_mac_add_interface()
118 iwl_mvm_mld_mac_ctxt_remove(mvm, vif); in iwl_mvm_mld_mac_add_interface()
123 struct ieee80211_vif *vif) in iwl_mvm_mld_mac_remove_interface() argument
126 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_mac_remove_interface()
129 iwl_mvm_prepare_mac_removal(mvm, vif); in iwl_mvm_mld_mac_remove_interface()
131 if (!(vif->type == NL80211_IFTYPE_AP || in iwl_mvm_mld_mac_remove_interface()
132 vif->type == NL80211_IFTYPE_ADHOC)) in iwl_mvm_mld_mac_remove_interface()
133 iwl_mvm_tcm_rm_vif(mvm, vif); in iwl_mvm_mld_mac_remove_interface()
137 if (vif == mvm->csme_vif) { in iwl_mvm_mld_mac_remove_interface()
144 vif->driver_flags &= ~(IEEE80211_VIF_BEACON_FILTER | in iwl_mvm_mld_mac_remove_interface()
148 if (vif->bss_conf.ftm_responder) in iwl_mvm_mld_mac_remove_interface()
151 iwl_mvm_vif_dbgfs_rm_link(mvm, vif); in iwl_mvm_mld_mac_remove_interface()
156 if (vif->type == NL80211_IFTYPE_AP || in iwl_mvm_mld_mac_remove_interface()
157 vif->type == NL80211_IFTYPE_ADHOC) { in iwl_mvm_mld_mac_remove_interface()
159 if (vif == mvm->noa_vif) { in iwl_mvm_mld_mac_remove_interface()
173 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { in iwl_mvm_mld_mac_remove_interface()
179 iwl_mvm_remove_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_mac_remove_interface()
181 iwl_mvm_disable_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_mac_remove_interface()
184 iwl_mvm_mld_mac_ctxt_remove(mvm, vif); in iwl_mvm_mld_mac_remove_interface()
194 if (vif->type == NL80211_IFTYPE_MONITOR) { in iwl_mvm_mld_mac_remove_interface()
214 struct ieee80211_vif *vif) in iwl_mvm_esr_mode_active() argument
216 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_esr_mode_active()
222 vif->driver_flags |= IEEE80211_VIF_EML_ACTIVE; in iwl_mvm_esr_mode_active()
224 iwl_mvm_update_smps_on_active_links(mvm, vif, IWL_MVM_SMPS_REQ_FW, in iwl_mvm_esr_mode_active()
240 if (vif->active_links == mvmvif->link_selection_res && in iwl_mvm_esr_mode_active()
241 !WARN_ON(!(vif->active_links & BIT(mvmvif->link_selection_primary)))) in iwl_mvm_esr_mode_active()
244 mvmvif->primary_link = __ffs(vif->active_links); in iwl_mvm_esr_mode_active()
254 struct ieee80211_vif *vif, in __iwl_mvm_mld_assign_vif_chanctx() argument
261 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in __iwl_mvm_mld_assign_vif_chanctx()
277 if (vif->type == NL80211_IFTYPE_AP) { in __iwl_mvm_mld_assign_vif_chanctx()
278 ret = iwl_mvm_mld_mac_ctxt_changed(mvm, vif, false); in __iwl_mvm_mld_assign_vif_chanctx()
280 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); in __iwl_mvm_mld_assign_vif_chanctx()
289 ret = iwl_mvm_esr_mode_active(mvm, vif); in __iwl_mvm_mld_assign_vif_chanctx()
298 if (vif->type == NL80211_IFTYPE_AP) in __iwl_mvm_mld_assign_vif_chanctx()
303 ret = iwl_mvm_link_changed(mvm, vif, link_conf, 0, false); in __iwl_mvm_mld_assign_vif_chanctx()
312 if (ieee80211_vif_link_active(vif, link_conf->link_id)) { in __iwl_mvm_mld_assign_vif_chanctx()
313 ret = iwl_mvm_link_changed(mvm, vif, link_conf, in __iwl_mvm_mld_assign_vif_chanctx()
321 if (vif->type == NL80211_IFTYPE_STATION) in __iwl_mvm_mld_assign_vif_chanctx()
322 iwl_mvm_send_ap_tx_power_constraint_cmd(mvm, vif, in __iwl_mvm_mld_assign_vif_chanctx()
332 if (vif->type == NL80211_IFTYPE_MONITOR) { in __iwl_mvm_mld_assign_vif_chanctx()
333 ret = iwl_mvm_mld_add_snif_sta(mvm, vif, link_conf); in __iwl_mvm_mld_assign_vif_chanctx()
341 iwl_mvm_link_changed(mvm, vif, link_conf, LINK_CONTEXT_MODIFY_ACTIVE, in __iwl_mvm_mld_assign_vif_chanctx()
350 struct ieee80211_vif *vif, in iwl_mvm_mld_assign_vif_chanctx() argument
357 if (ieee80211_vif_type_p2p(vif) != NL80211_IFTYPE_STATION) { in iwl_mvm_mld_assign_vif_chanctx()
360 ret = iwl_mvm_esr_non_bss_link(mvm, vif, link_conf->link_id, in iwl_mvm_mld_assign_vif_chanctx()
371 return __iwl_mvm_mld_assign_vif_chanctx(mvm, vif, link_conf, ctx, false); in iwl_mvm_mld_assign_vif_chanctx()
375 struct ieee80211_vif *vif) in iwl_mvm_esr_mode_inactive() argument
377 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_esr_mode_inactive()
383 vif->driver_flags &= ~IEEE80211_VIF_EML_ACTIVE; in iwl_mvm_esr_mode_inactive()
385 iwl_mvm_update_smps_on_active_links(mvm, vif, IWL_MVM_SMPS_REQ_FW, in iwl_mvm_esr_mode_inactive()
388 for_each_vif_active_link(vif, link_conf, link_id) { in iwl_mvm_esr_mode_inactive()
425 struct ieee80211_vif *vif, in __iwl_mvm_mld_unassign_vif_chanctx() argument
431 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in __iwl_mvm_mld_unassign_vif_chanctx()
439 if (vif->type == NL80211_IFTYPE_AP && switching_chanctx) { in __iwl_mvm_mld_unassign_vif_chanctx()
446 rcu_assign_pointer(mvm->csa_tx_blocked_vif, vif); in __iwl_mvm_mld_unassign_vif_chanctx()
451 iwl_mvm_link_changed(mvm, vif, link_conf, in __iwl_mvm_mld_unassign_vif_chanctx()
455 int ret = iwl_mvm_esr_mode_inactive(mvm, vif); in __iwl_mvm_mld_unassign_vif_chanctx()
462 if (vif->type == NL80211_IFTYPE_MONITOR) in __iwl_mvm_mld_unassign_vif_chanctx()
463 iwl_mvm_mld_rm_snif_sta(mvm, vif); in __iwl_mvm_mld_unassign_vif_chanctx()
472 struct ieee80211_vif *vif, in iwl_mvm_mld_unassign_vif_chanctx() argument
476 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_unassign_vif_chanctx()
480 __iwl_mvm_mld_unassign_vif_chanctx(mvm, vif, link_conf, ctx, false); in iwl_mvm_mld_unassign_vif_chanctx()
482 if (!ieee80211_vif_is_mld(vif) && !mvmvif->ap_sta && in iwl_mvm_mld_unassign_vif_chanctx()
483 !WARN_ON_ONCE(vif->cfg.assoc)) { in iwl_mvm_mld_unassign_vif_chanctx()
484 iwl_mvm_remove_link(mvm, vif, link_conf); in iwl_mvm_mld_unassign_vif_chanctx()
485 iwl_mvm_add_link(mvm, vif, link_conf); in iwl_mvm_mld_unassign_vif_chanctx()
490 if (ieee80211_vif_type_p2p(vif) != NL80211_IFTYPE_STATION) in iwl_mvm_mld_unassign_vif_chanctx()
491 iwl_mvm_esr_non_bss_link(mvm, vif, link_conf->link_id, false); in iwl_mvm_mld_unassign_vif_chanctx()
523 struct ieee80211_vif *vif, in iwl_mvm_send_ap_tx_power_constraint_cmd() argument
528 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_send_ap_tx_power_constraint_cmd()
572 struct ieee80211_vif *vif, in iwl_mvm_mld_start_ap_ibss() argument
576 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_start_ap_ibss()
581 if (vif->type == NL80211_IFTYPE_AP) in iwl_mvm_mld_start_ap_ibss()
582 iwl_mvm_send_ap_tx_power_constraint_cmd(mvm, vif, in iwl_mvm_mld_start_ap_ibss()
586 ret = iwl_mvm_mac_ctxt_beacon_changed(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
591 ret = iwl_mvm_link_changed(mvm, vif, link_conf, in iwl_mvm_mld_start_ap_ibss()
598 ret = iwl_mvm_mld_add_mcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
605 ret = iwl_mvm_mld_add_bcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
609 if (iwl_mvm_start_ap_ibss_common(hw, vif, &ret)) in iwl_mvm_mld_start_ap_ibss()
612 /* Need to update the P2P Device MAC (only GO, IBSS is single vif) */ in iwl_mvm_mld_start_ap_ibss()
613 if (vif->p2p && mvm->p2p_device_vif) in iwl_mvm_mld_start_ap_ibss()
622 iwl_mvm_ftm_restart_responder(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
629 iwl_mvm_mld_rm_bcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
631 iwl_mvm_mld_rm_mcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_start_ap_ibss()
636 struct ieee80211_vif *vif, in iwl_mvm_mld_start_ap() argument
639 return iwl_mvm_mld_start_ap_ibss(hw, vif, link_conf); in iwl_mvm_mld_start_ap()
643 struct ieee80211_vif *vif) in iwl_mvm_mld_start_ibss() argument
645 return iwl_mvm_mld_start_ap_ibss(hw, vif, &vif->bss_conf); in iwl_mvm_mld_start_ibss()
649 struct ieee80211_vif *vif, in iwl_mvm_mld_stop_ap_ibss() argument
656 iwl_mvm_stop_ap_ibss_common(mvm, vif); in iwl_mvm_mld_stop_ap_ibss()
658 /* Need to update the P2P Device MAC (only GO, IBSS is single vif) */ in iwl_mvm_mld_stop_ap_ibss()
659 if (vif->p2p && mvm->p2p_device_vif) in iwl_mvm_mld_stop_ap_ibss()
662 iwl_mvm_ftm_responder_clear(mvm, vif); in iwl_mvm_mld_stop_ap_ibss()
664 iwl_mvm_mld_rm_bcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_stop_ap_ibss()
665 iwl_mvm_mld_rm_mcast_sta(mvm, vif, link_conf); in iwl_mvm_mld_stop_ap_ibss()
671 struct ieee80211_vif *vif, in iwl_mvm_mld_stop_ap() argument
674 iwl_mvm_mld_stop_ap_ibss(hw, vif, link_conf); in iwl_mvm_mld_stop_ap()
678 struct ieee80211_vif *vif) in iwl_mvm_mld_stop_ibss() argument
680 iwl_mvm_mld_stop_ap_ibss(hw, vif, &vif->bss_conf); in iwl_mvm_mld_stop_ibss()
684 struct ieee80211_vif *vif, in iwl_mvm_mld_mac_sta_state() argument
696 return iwl_mvm_mac_sta_state_common(hw, vif, sta, old_state, new_state, in iwl_mvm_mld_mac_sta_state()
701 struct ieee80211_vif *vif, in iwl_mvm_esr_bw_criteria() argument
708 for_each_vif_active_link(vif, other_link, link_id) { in iwl_mvm_esr_bw_criteria()
721 struct ieee80211_vif *vif, in iwl_mvm_mld_link_info_changed_station() argument
725 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_link_info_changed_station()
733 /* not yet marked active in vif means during link switch */ in iwl_mvm_mld_link_info_changed_station()
734 if (!ieee80211_vif_link_active(vif, link_conf->link_id) && in iwl_mvm_mld_link_info_changed_station()
735 vif->cfg.assoc && mvmvif->link[link_conf->link_id]->phy_ctxt) in iwl_mvm_mld_link_info_changed_station()
742 if (changes & BSS_CHANGED_QOS && vif->cfg.assoc && link_conf->qos) in iwl_mvm_mld_link_info_changed_station()
748 if (vif->cfg.assoc && (has_he || has_eht)) { in iwl_mvm_mld_link_info_changed_station()
754 ieee80211_vif_link_active(vif, link_conf->link_id) && in iwl_mvm_mld_link_info_changed_station()
756 !iwl_mvm_esr_bw_criteria(mvm, vif, link_conf)) in iwl_mvm_mld_link_info_changed_station()
757 iwl_mvm_exit_esr(mvm, vif, in iwl_mvm_mld_link_info_changed_station()
759 iwl_mvm_get_primary_link(vif)); in iwl_mvm_mld_link_info_changed_station()
762 if (vif->cfg.assoc) in iwl_mvm_mld_link_info_changed_station()
766 ret = iwl_mvm_link_changed(mvm, vif, link_conf, link_changes, in iwl_mvm_mld_link_info_changed_station()
772 ret = iwl_mvm_mld_mac_ctxt_changed(mvm, vif, false); in iwl_mvm_mld_link_info_changed_station()
774 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); in iwl_mvm_mld_link_info_changed_station()
779 iwl_mvm_bss_info_changed_station_common(mvm, vif, link_conf, changes); in iwl_mvm_mld_link_info_changed_station()
795 struct ieee80211_vif *vif, in iwl_mvm_mld_vif_cfg_changed_station() argument
798 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_vif_cfg_changed_station()
810 ret = iwl_mvm_mld_mac_ctxt_changed(mvm, vif, false); in iwl_mvm_mld_vif_cfg_changed_station()
812 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); in iwl_mvm_mld_vif_cfg_changed_station()
814 mvmvif->associated = vif->cfg.assoc; in iwl_mvm_mld_vif_cfg_changed_station()
817 if (vif->cfg.assoc) { in iwl_mvm_mld_vif_cfg_changed_station()
827 iwl_mvm_sf_update(mvm, vif, false); in iwl_mvm_mld_vif_cfg_changed_station()
828 iwl_mvm_power_vif_assoc(mvm, vif); in iwl_mvm_mld_vif_cfg_changed_station()
834 if (vif->p2p) { in iwl_mvm_mld_vif_cfg_changed_station()
835 iwl_mvm_update_smps(mvm, vif, in iwl_mvm_mld_vif_cfg_changed_station()
841 link_conf = rcu_dereference(vif->link_conf[i]); in iwl_mvm_mld_vif_cfg_changed_station()
853 ffs(vif->active_links) - 1; in iwl_mvm_mld_vif_cfg_changed_station()
864 iwl_mvm_protect_assoc(mvm, vif, 0, link_id); in iwl_mvm_mld_vif_cfg_changed_station()
867 iwl_mvm_sf_update(mvm, vif, false); in iwl_mvm_mld_vif_cfg_changed_station()
870 iwl_mvm_power_vif_assoc(mvm, vif); in iwl_mvm_mld_vif_cfg_changed_station()
879 ret = iwl_mvm_sf_update(mvm, vif, false); in iwl_mvm_mld_vif_cfg_changed_station()
886 iwl_mvm_bss_info_changed_station_assoc(mvm, vif, changes); in iwl_mvm_mld_vif_cfg_changed_station()
890 iwl_mvm_smps_workaround(mvm, vif, false); in iwl_mvm_mld_vif_cfg_changed_station()
897 ieee80211_vif_is_mld(vif) && mvmvif->authorized) in iwl_mvm_mld_vif_cfg_changed_station()
904 struct ieee80211_vif *vif, in iwl_mvm_mld_link_info_changed_ap_ibss() argument
908 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_link_info_changed_ap_ibss()
926 iwl_mvm_link_changed(mvm, vif, link_conf, in iwl_mvm_mld_link_info_changed_ap_ibss()
928 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); in iwl_mvm_mld_link_info_changed_ap_ibss()
932 iwl_mvm_mac_ctxt_beacon_changed(mvm, vif, link_conf)) in iwl_mvm_mld_link_info_changed_ap_ibss()
937 int ret = iwl_mvm_ftm_start_responder(mvm, vif, link_conf); in iwl_mvm_mld_link_info_changed_ap_ibss()
946 struct ieee80211_vif *vif, in iwl_mvm_mld_link_info_changed() argument
954 switch (vif->type) { in iwl_mvm_mld_link_info_changed()
956 iwl_mvm_mld_link_info_changed_station(mvm, vif, link_conf, in iwl_mvm_mld_link_info_changed()
961 iwl_mvm_mld_link_info_changed_ap_ibss(mvm, vif, link_conf, in iwl_mvm_mld_link_info_changed()
966 iwl_mvm_update_mu_groups(mvm, vif); in iwl_mvm_mld_link_info_changed()
981 struct ieee80211_vif *vif, in iwl_mvm_mld_vif_cfg_changed() argument
988 if (changes & BSS_CHANGED_IDLE && !vif->cfg.idle) in iwl_mvm_mld_vif_cfg_changed()
991 if (vif->type == NL80211_IFTYPE_STATION) in iwl_mvm_mld_vif_cfg_changed()
992 iwl_mvm_mld_vif_cfg_changed_station(mvm, vif, changes); in iwl_mvm_mld_vif_cfg_changed()
1010 struct ieee80211_vif *vif, in iwl_mvm_mld_config_iface_filter() argument
1021 if (vif->type != NL80211_IFTYPE_STATION || !vif->cfg.assoc || in iwl_mvm_mld_config_iface_filter()
1022 !vif->p2p) in iwl_mvm_mld_config_iface_filter()
1026 iwl_mvm_mld_mac_ctxt_changed(mvm, vif, false); in iwl_mvm_mld_config_iface_filter()
1031 struct ieee80211_vif *vif, in iwl_mvm_mld_mac_conf_tx() argument
1036 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_mac_conf_tx()
1047 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { in iwl_mvm_mld_mac_conf_tx()
1049 return iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, in iwl_mvm_mld_mac_conf_tx()
1056 static int iwl_mvm_mld_roc_link(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_mld_roc_link() argument
1063 ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, 0, false); in iwl_mvm_mld_roc_link()
1067 ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, in iwl_mvm_mld_roc_link()
1078 return iwl_mvm_mld_add_bcast_sta(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_roc_link()
1081 static int iwl_mvm_mld_roc(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in iwl_mvm_mld_roc() argument
1090 return iwl_mvm_roc_common(hw, vif, channel, duration, type, &ops); in iwl_mvm_mld_roc()
1095 struct ieee80211_vif *vif, in iwl_mvm_mld_change_vif_links() argument
1100 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_change_vif_links()
1129 err = iwl_mvm_disable_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_change_vif_links()
1139 err = iwl_mvm_disable_link(mvm, vif, link_conf); in iwl_mvm_mld_change_vif_links()
1147 link_conf = link_conf_dereference_protected(vif, i); in iwl_mvm_mld_change_vif_links()
1155 err = iwl_mvm_add_link(mvm, vif, link_conf); in iwl_mvm_mld_change_vif_links()
1164 err = iwl_mvm_add_link(mvm, vif, &vif->bss_conf); in iwl_mvm_mld_change_vif_links()
1187 struct ieee80211_vif *vif, in iwl_mvm_mld_change_sta_links() argument
1194 return iwl_mvm_mld_update_sta_links(mvm, vif, sta, old_links, new_links); in iwl_mvm_mld_change_sta_links()
1197 bool iwl_mvm_vif_has_esr_cap(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_vif_has_esr_cap() argument
1203 if (!ieee80211_vif_is_mld(vif) || !vif->cfg.assoc || in iwl_mvm_vif_has_esr_cap()
1204 hweight16(ieee80211_vif_usable_links(vif)) == 1) in iwl_mvm_vif_has_esr_cap()
1207 if (!(vif->cfg.eml_cap & IEEE80211_EML_CAP_EMLSR_SUPP)) in iwl_mvm_vif_has_esr_cap()
1211 ieee80211_vif_type_p2p(vif)); in iwl_mvm_vif_has_esr_cap()
1217 struct ieee80211_vif *vif, in iwl_mvm_mld_can_activate_links() argument
1229 if (n_links > iwl_mvm_max_active_links(mvm, vif)) in iwl_mvm_mld_can_activate_links()
1234 iwl_mvm_vif_has_esr_cap(mvm, vif); in iwl_mvm_mld_can_activate_links()
1238 iwl_mvm_mld_can_neg_ttlm(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in iwl_mvm_mld_can_neg_ttlm() argument
1257 struct ieee80211_vif *vif, in iwl_mvm_mld_mac_pre_channel_switch() argument
1260 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mld_mac_pre_channel_switch()
1266 u8 primary = iwl_mvm_get_primary_link(vif); in iwl_mvm_mld_mac_pre_channel_switch()
1271 selected = iwl_mvm_get_other_link(vif, primary); in iwl_mvm_mld_mac_pre_channel_switch()
1291 iwl_mvm_exit_esr(mvm, vif, IWL_MVM_ESR_EXIT_CSA, selected); in iwl_mvm_mld_mac_pre_channel_switch()
1304 ret = iwl_mvm_pre_channel_switch(mvm, vif, chsw); in iwl_mvm_mld_mac_pre_channel_switch()