Lines Matching refs:mvmvif
11 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
17 iwl_mvm_mac_init_mvmvif(mvm, mvmvif);
19 mvmvif->mvm = mvm;
28 for_each_mvm_vif_valid_link(mvmvif, i)
29 mvmvif->link[i]->beacon_stats.accu_num_beacons +=
30 mvmvif->link[i]->beacon_stats.num_beacons;
37 rcu_assign_pointer(mvm->vif_id_to_mac[mvmvif->id], vif);
39 mvmvif->features |= hw->netdev_features;
42 mvmvif->deflink.fw_link_id = IWL_MVM_FW_LINK_ID_INVALID;
43 mvmvif->deflink.active = 0;
45 mvmvif->link[0] = &mvmvif->deflink;
58 mvm->bf_allowed_vif = mvmvif;
101 if (mvm->bf_allowed_vif == mvmvif) {
107 mvmvif->link[0] = NULL;
116 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
132 if (mvm->bf_allowed_vif == mvmvif) {
164 if (mvmvif->deflink.phy_ctxt) {
165 iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt);
166 mvmvif->deflink.phy_ctxt = NULL;
176 RCU_INIT_POINTER(mvm->vif_id_to_mac[mvmvif->id], NULL);
178 probe_data = rcu_dereference_protected(mvmvif->deflink.probe_resp_data,
180 RCU_INIT_POINTER(mvmvif->deflink.probe_resp_data, NULL);
190 static unsigned int iwl_mvm_mld_count_active_links(struct iwl_mvm_vif *mvmvif)
196 if (mvmvif->link[i] && mvmvif->link[i]->phy_ctxt)
204 struct iwl_mvm_vif *mvmvif)
206 struct ieee80211_sta *ap_sta = mvmvif->ap_sta;
232 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
235 mvmvif->esr_active = true;
243 for_each_mvm_vif_valid_link(mvmvif, link_id) {
244 struct iwl_mvm_vif_link_info *link = mvmvif->link[link_id];
256 if (vif->active_links == mvmvif->link_selection_res &&
257 !WARN_ON(!(vif->active_links & BIT(mvmvif->link_selection_primary))))
258 mvmvif->primary_link = mvmvif->link_selection_primary;
260 mvmvif->primary_link = __ffs(vif->active_links);
270 iwl_mvm_restart_mpdu_count(mvm, mvmvif);
284 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
285 unsigned int n_active = iwl_mvm_mld_count_active_links(mvmvif);
289 if (WARN_ON_ONCE(!mvmvif->link[link_id]))
293 if (!mvmvif->link[link_id]->phy_ctxt)
308 mvmvif->link[link_id]->phy_ctxt = phy_ctxt;
311 mvmvif->link[link_id]->listen_lmac = true;
323 mvmvif->ap_ibss_active = true;
337 if (mvmvif->ap_sta) {
341 link_sta = rcu_dereference(mvmvif->ap_sta->link[link_id]);
344 iwl_mvm_rs_rate_init(mvm, vif, mvmvif->ap_sta,
381 mvmvif->link[link_id]->phy_ctxt = NULL;
414 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
418 mvmvif->esr_active = false;
430 mvmvif->link[link_id]->listen_lmac = false;
435 phy_ctxt = mvmvif->link[link_id]->phy_ctxt;
457 iwl_mvm_restart_mpdu_count(mvm, mvmvif);
470 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
471 unsigned int n_active = iwl_mvm_mld_count_active_links(mvmvif);
475 if (WARN_ON_ONCE(!mvmvif->link[link_id]))
479 mvmvif->csa_countdown = false;
482 iwl_mvm_modify_all_sta_disable_tx(mvm, mvmvif, true);
487 mvmvif->ap_ibss_active = false;
506 mvmvif->link[link_id]->phy_ctxt = NULL;
515 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
521 if (!ieee80211_vif_is_mld(vif) && !mvmvif->ap_sta &&
567 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
569 mvmvif->link[bss_conf->link_id];
615 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
667 mvmvif->ap_ibss_active = false;
764 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
769 if (WARN_ON_ONCE(!mvmvif->link[link_conf->link_id]))
789 mvmvif->esr_active &&
810 memcpy(mvmvif->link[link_conf->link_id]->bssid, link_conf->bssid,
816 static bool iwl_mvm_mld_vif_have_valid_ap_sta(struct iwl_mvm_vif *mvmvif)
820 for_each_mvm_vif_valid_link(mvmvif, i) {
821 if (mvmvif->link[i]->ap_sta_id != IWL_MVM_INVALID_STA)
831 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
837 for_each_mvm_vif_valid_link(mvmvif, i) {
838 struct iwl_mvm_vif_link_info *link = mvmvif->link[i];
856 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
872 mvmvif->associated = vif->cfg.assoc;
876 mvmvif->session_prot_connection_loss = false;
883 for_each_mvm_vif_valid_link(mvmvif, i) {
884 memset(&mvmvif->link[i]->beacon_stats, 0,
885 sizeof(mvmvif->link[i]->beacon_stats));
924 } else if (iwl_mvm_mld_vif_have_valid_ap_sta(mvmvif)) {
956 ieee80211_vif_is_mld(vif) && mvmvif->authorized)
958 &mvmvif->mlo_int_scan_wk, 0);
967 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
972 if (!mvmvif->ap_ibss_active)
1095 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1096 struct iwl_mvm_vif_link_info *mvm_link = mvmvif->link[link_id];
1159 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1195 mvmvif->link[0] = NULL;
1205 kfree(mvmvif->link[i]);
1206 mvmvif->link[i] = NULL;
1216 mvmvif->link[i] = new_link[i];
1226 mvmvif->link[0] = &mvmvif->deflink;
1229 mvmvif->primary_link = 0;
1230 } else if (!(new_links & BIT(mvmvif->primary_link))) {
1235 mvmvif->primary_link = __ffs(new_links);
1323 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1328 if (mvmvif->esr_active) {