Lines Matching refs:mvmvif
852 struct iwl_mvm_vif *mvmvif =
854 u8 ap_sta_id = READ_ONCE(mvmvif->deflink.ap_sta_id);
1048 struct iwl_mvm_vif *mvmvif;
1053 mvmvif = iwl_mvm_vif_from_mac80211(vif);
1054 cancel_delayed_work(&mvmvif->uapsd_nonagg_detected_wk);
1109 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1113 mvmvif->uploaded = false;
1116 iwl_mvm_te_clear_data(mvm, &mvmvif->time_event_data);
1119 mvmvif->roc_activity = ROC_NUM_ACTIVITIES;
1121 mvmvif->bf_enabled = false;
1122 mvmvif->ba_enabled = false;
1123 mvmvif->ap_sta = NULL;
1125 mvmvif->esr_active = false;
1128 for_each_mvm_vif_valid_link(mvmvif, link_id) {
1129 mvmvif->link[link_id]->ap_sta_id = IWL_MVM_INVALID_STA;
1130 mvmvif->link[link_id]->fw_link_id = IWL_MVM_FW_LINK_ID_INVALID;
1131 mvmvif->link[link_id]->phy_ctxt = NULL;
1132 mvmvif->link[link_id]->active = 0;
1133 mvmvif->link[link_id]->igtk = NULL;
1134 memset(&mvmvif->link[link_id]->bf_data, 0,
1135 sizeof(mvmvif->link[link_id]->bf_data));
1138 probe_data = rcu_dereference_protected(mvmvif->deflink.probe_resp_data,
1142 RCU_INIT_POINTER(mvmvif->deflink.probe_resp_data, NULL);
1542 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1551 u8 ap_sta_id = mvmvif->link[link_id]->ap_sta_id;
1553 mvmvif->csa_bcn_pending = false;
1554 mvmvif->csa_blocks_tx = false;
1576 } else if (vif->type == NL80211_IFTYPE_AP && mvmvif->csa_blocks_tx) {
1587 mvmvif->csa_blocks_tx = false;
1590 mvmvif->ps_disabled = false;
1595 if (mvmvif->csa_failed)
1607 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1609 .mac_id = cpu_to_le32(FW_CMD_ID_AND_COLOR(mvmvif->id,
1610 mvmvif->color)),
1623 IWL_DEBUG_MAC80211(mvm, "Abort CSA on mac %d\n", mvmvif->id);
1634 mvmvif->csa_failed = true;
1643 struct iwl_mvm_vif *mvmvif;
1646 mvmvif = container_of(wk, struct iwl_mvm_vif, csa_work.work);
1647 vif = container_of((void *)mvmvif, struct ieee80211_vif, drv_priv);
1678 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1692 return iwl_mvm_allocate_int_sta(mvm, &mvmvif->deflink.mcast_sta, 0,
1700 struct iwl_mvm_vif *mvmvif =
1702 struct iwl_mvm *mvm = mvmvif->mvm;
1704 container_of((void *)mvmvif, struct ieee80211_vif, drv_priv);
1712 struct iwl_mvm_vif *mvmvif = container_of(wk, struct iwl_mvm_vif,
1715 container_of((void *)mvmvif, struct ieee80211_vif, drv_priv);
1717 guard(mvm)(mvmvif->mvm);
1718 iwl_mvm_int_mlo_scan(mvmvif->mvm, vif);
1723 struct iwl_mvm_vif *mvmvif =
1725 struct iwl_mvm *mvm = mvmvif->mvm;
1727 container_of((void *)mvmvif, struct ieee80211_vif, drv_priv);
1733 void iwl_mvm_mac_init_mvmvif(struct iwl_mvm *mvm, struct iwl_mvm_vif *mvmvif)
1740 INIT_DELAYED_WORK(&mvmvif->csa_work,
1743 wiphy_delayed_work_init(&mvmvif->prevent_esr_done_wk,
1746 wiphy_delayed_work_init(&mvmvif->mlo_int_scan_wk,
1749 wiphy_work_init(&mvmvif->unblock_esr_tpt_wk,
1757 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1763 iwl_mvm_mac_init_mvmvif(mvm, mvmvif);
1765 mvmvif->mvm = mvm;
1768 mvmvif->deflink.fw_link_id = IWL_MVM_FW_LINK_ID_INVALID;
1769 mvmvif->deflink.active = 0;
1770 mvmvif->link[0] = &mvmvif->deflink;
1784 for_each_mvm_vif_valid_link(mvmvif, i)
1785 mvmvif->link[i]->beacon_stats.accu_num_beacons +=
1786 mvmvif->link[i]->beacon_stats.num_beacons;
1793 rcu_assign_pointer(mvm->vif_id_to_mac[mvmvif->id], vif);
1820 mvmvif->features |= hw->netdev_features;
1837 mvm->bf_allowed_vif = mvmvif;
1872 mvmvif->deflink.phy_ctxt = NULL;
1883 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1895 &mvmvif->prevent_esr_done_wk);
1898 &mvmvif->mlo_int_scan_wk);
1900 wiphy_work_cancel(mvm->hw->wiphy, &mvmvif->unblock_esr_tpt_wk);
1902 cancel_delayed_work_sync(&mvmvif->csa_work);
1909 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
1925 probe_data = rcu_dereference_protected(mvmvif->deflink.probe_resp_data,
1927 RCU_INIT_POINTER(mvmvif->deflink.probe_resp_data, NULL);
1931 if (mvm->bf_allowed_vif == mvmvif) {
1965 if (mvmvif->deflink.phy_ctxt) {
1966 iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt);
1967 mvmvif->deflink.phy_ctxt = NULL;
1975 RCU_INIT_POINTER(mvm->vif_id_to_mac[mvmvif->id], NULL);
1983 iwl_mvm_dealloc_int_sta(mvm, &mvmvif->deflink.mcast_sta);
2558 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
2615 if (mvmvif->deflink.he_ru_2mhz_block)
2635 if (iwl_mvm_set_fw_mu_edca_params(mvm, &mvmvif->deflink,
2741 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
2759 for_each_mvm_vif_valid_link(mvmvif, link_id)
2760 mvmvif->link[link_id]->bf_data.ave_beacon_signal = 0;
2777 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
2802 mvmvif->link[link_conf->link_id];
2808 if (mvmvif->bf_enabled) {
2835 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
2847 iwl_mvm_cfg_he_sta(mvm, vif, mvmvif->deflink.ap_sta_id);
2853 if (changes & BSS_CHANGED_QOS && mvmvif->associated &&
2856 iwl_mvm_cfg_he_sta(mvm, vif, mvmvif->deflink.ap_sta_id);
2864 if (changes & BSS_CHANGED_BSSID && !mvmvif->associated)
2865 memcpy(mvmvif->deflink.bssid, bss_conf->bssid, ETH_ALEN);
2867 ret = iwl_mvm_mac_ctxt_changed(mvm, vif, false, mvmvif->deflink.bssid);
2872 memcpy(mvmvif->deflink.bssid, bss_conf->bssid, ETH_ALEN);
2873 mvmvif->associated = vif->cfg.assoc;
2877 mvmvif->session_prot_connection_loss = false;
2881 for_each_mvm_vif_valid_link(mvmvif, i)
2882 memset(&mvmvif->link[i]->beacon_stats, 0,
2883 sizeof(mvmvif->link[i]->beacon_stats));
2940 } else if (mvmvif->deflink.ap_sta_id != IWL_MVM_INVALID_STA) {
2964 &mvmvif->deflink, 0);
2971 mvmvif->deflink.ap_sta_id);
2976 mvmvif->deflink.ap_sta_id = IWL_MVM_INVALID_STA;
3004 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3009 mvmvif->ap_assoc_sta_count = 0;
3012 mvmvif->ap_ibss_active = true;
3015 for (i = 0; i < ARRAY_SIZE(mvmvif->ap_early_keys); i++) {
3016 struct ieee80211_key_conf *key = mvmvif->ap_early_keys[i];
3021 mvmvif->ap_early_keys[i] = NULL;
3029 iwl_mvm_vif_set_low_latency(mvmvif, true,
3031 iwl_mvm_send_low_latency_cmd(mvm, true, mvmvif->id);
3045 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3147 mvmvif->ap_ibss_active = false;
3176 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3184 iwl_mvm_remove_time_event(mvm, mvmvif,
3185 &mvmvif->time_event_data);
3187 mvmvif->csa_countdown = false;
3195 mvmvif->ap_ibss_active = false;
3199 iwl_mvm_vif_set_low_latency(mvmvif, false,
3201 iwl_mvm_send_low_latency_cmd(mvm, false, mvmvif->id);
3264 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3267 if (!mvmvif->ap_ibss_active)
3637 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3643 !mvmvif->link[link_id]))
3647 mvmvif->link[link_id]->he_ru_2mhz_block = false;
3659 mvmvif->link[link_id]->he_ru_2mhz_block = !iter_data.tolerated;
3699 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3737 switch (mvmvif->rekey_data.akm) {
3798 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3801 for_each_mvm_vif_valid_link(mvmvif, link_id) {
3807 if (!conf || !link_sta || !mvmvif->link[link_id]->phy_ctxt)
3811 mvmvif->link[link_id]->phy_ctxt->channel->band);
3854 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3862 if (!link_conf || !mvmvif->link[link_id])
3868 mvmvif->link[link_id]->he_ru_2mhz_block = false;
3883 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3918 mvmvif->ap_sta = sta;
3943 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
3952 mvmvif->ap_assoc_sta_count++;
3976 if (!mvmvif->link[link_id])
3998 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
4014 mvmvif->authorized = 1;
4017 mvmvif->link_selection_res = vif->active_links;
4018 mvmvif->link_selection_primary =
4025 memset(&mvmvif->last_esr_exit, 0,
4026 sizeof(mvmvif->last_esr_exit));
4064 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
4081 mvmvif->authorized = 0;
4082 mvmvif->link_selection_res = 0;
4088 &mvmvif->prevent_esr_done_wk);
4091 &mvmvif->mlo_int_scan_wk);
4093 wiphy_work_cancel(mvm->hw->wiphy, &mvmvif->unblock_esr_tpt_wk);
4096 if (ieee80211_vif_is_mld(vif) && mvmvif->esr_active)
4112 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
4161 if (WARN_ON_ONCE(!mvmvif->link[link_id] ||
4162 !mvmvif->link[link_id]->phy_ctxt)) {
4202 mvmvif->ap_assoc_sta_count--;
4214 mvmvif->ap_sta = NULL;
4275 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
4277 mvmvif->deflink.queue_params[ac] = *params;
4294 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
4297 if (info->was_assoc && !mvmvif->session_prot_connection_loss)
4367 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
4419 rcu_assign_pointer(mvmvif->bcn_prot.keys[keyidx - 6],
4458 if (!mvmvif->ap_ibss_active) {
4460 i < ARRAY_SIZE(mvmvif->ap_early_keys);
4462 if (!mvmvif->ap_early_keys[i]) {
4463 mvmvif->ap_early_keys[i] = key;
4468 if (i >= ARRAY_SIZE(mvmvif->ap_early_keys))
4557 RCU_INIT_POINTER(mvmvif->bcn_prot.keys[keyidx - 6],
4561 for (i = 0; i < ARRAY_SIZE(mvmvif->ap_early_keys); i++) {
4562 if (mvmvif->ap_early_keys[i] == key) {
4563 mvmvif->ap_early_keys[i] = NULL;
4668 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
4669 struct iwl_mvm_time_event_data *te_data = &mvmvif->hs_time_event_data;
4867 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
4873 if (mvmvif->deflink.phy_ctxt &&
4874 channel == mvmvif->deflink.phy_ctxt->channel)
4881 if (!phy_ctxt->ref || mvmvif->deflink.phy_ctxt == phy_ctxt)
4885 if (mvmvif->deflink.phy_ctxt)
4887 mvmvif->deflink.phy_ctxt);
4889 mvmvif->deflink.phy_ctxt = phy_ctxt;
4890 iwl_mvm_phy_ctxt_ref(mvm, mvmvif->deflink.phy_ctxt);
4896 if (mvmvif->deflink.phy_ctxt)
4897 iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt);
4899 mvmvif->deflink.phy_ctxt = iwl_mvm_get_free_phy_ctxt(mvm);
4900 if (!mvmvif->deflink.phy_ctxt)
4905 return iwl_mvm_phy_ctxt_add(mvm, mvmvif->deflink.phy_ctxt,
5124 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
5128 mvmvif->deflink.phy_ctxt = phy_ctxt;
5134 mvmvif->ap_ibss_active = true;
5149 mvmvif->ps_disabled = true;
5164 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
5189 mvmvif->monitor_active = true;
5208 mvmvif->csa_bcn_pending = false;
5212 mvmvif->csa_bcn_pending = true;
5240 mvmvif->deflink.phy_ctxt = NULL;
5265 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
5268 iwl_mvm_remove_time_event(mvm, mvmvif,
5269 &mvmvif->time_event_data);
5275 mvmvif->monitor_active = false;
5276 mvmvif->ps_disabled = false;
5280 if (!switching_chanctx || !mvmvif->ap_ibss_active)
5283 mvmvif->csa_countdown = false;
5286 iwl_mvm_modify_all_sta_disable_tx(mvm, mvmvif, true);
5291 mvmvif->ap_ibss_active = false;
5305 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
5329 mvmvif->deflink.phy_ctxt = NULL;
5581 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
5583 .mac_id = cpu_to_le32(FW_CMD_ID_AND_COLOR(mvmvif->id,
5584 mvmvif->color)),
5607 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
5626 if (mvmvif->bf_enabled) {
5657 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
5663 mvmvif->csa_failed = false;
5664 mvmvif->csa_blocks_tx = false;
5689 if (WARN_ONCE(mvmvif->csa_countdown,
5693 mvmvif->csa_target_freq = chsw->chandef.chan->center_freq;
5701 mvmvif->csa_blocks_tx = true;
5709 mvmvif->csa_blocks_tx = chsw->block_tx;
5730 schedule_delayed_work(&mvmvif->csa_work, 0);
5740 schedule_delayed_work(&mvmvif->csa_work,
5753 mvmvif->csa_count = chsw->count;
5754 mvmvif->csa_misbehave = false;
5760 mvmvif->ps_disabled = true;
5787 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
5789 .mac_id = cpu_to_le32(FW_CMD_ID_AND_COLOR(mvmvif->id,
5790 mvmvif->color)),
5809 mvmvif->id, chsw->count, mvmvif->csa_count, chsw->block_tx);
5811 if (chsw->count >= mvmvif->csa_count && chsw->block_tx) {
5812 if (mvmvif->csa_misbehave) {
5824 mvmvif->csa_misbehave = false;
5827 mvmvif->csa_misbehave = true;
5829 mvmvif->csa_count = chsw->count;
5832 if (mvmvif->csa_failed)
5880 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
5901 if (link_conf->csa_active && mvmvif->csa_blocks_tx)
5921 if (sta == mvmvif->ap_sta) {
6233 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
6258 if (mvmvif->deflink.ap_sta_id != mvmsta->deflink.sta_id)
6265 for_each_mvm_vif_valid_link(mvmvif, i)
6266 sinfo->rx_beacon += mvmvif->link[i]->beacon_stats.num_beacons +
6267 mvmvif->link[i]->beacon_stats.accu_num_beacons;
6270 if (mvmvif->deflink.beacon_stats.avg_signal) {
6273 mvmvif->deflink.beacon_stats.avg_signal;
6471 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
6474 !mvmvif->ap_ibss_active || !vif->bss_conf.ftm_responder)