Lines Matching refs:arvif
456 struct ath11k_vif *arvif = (void *)vif->drv_priv;
458 if (arvif->vdev_id == arvif_iter->vdev_id)
459 arvif_iter->arvif = arvif;
475 if (!arvif_iter.arvif) {
480 return arvif_iter.arvif;
488 struct ath11k_vif *arvif;
493 arvif = ath11k_mac_get_arvif(pdev->ar, vdev_id);
494 if (arvif)
495 return arvif;
587 struct ath11k_vif *arvif;
593 list_for_each_entry(arvif, &ar->arvifs, list) {
594 if (arvif->txpower <= 0)
598 txpower = arvif->txpower;
600 txpower = min(txpower, arvif->txpower);
641 static int ath11k_recalc_rtscts_prot(struct ath11k_vif *arvif)
643 struct ath11k *ar = arvif->ar;
657 if (arvif->num_legacy_stations > 0)
663 if (arvif->rtscts_prot_mode == rts_cts)
666 arvif->rtscts_prot_mode = rts_cts;
669 arvif->vdev_id, rts_cts);
671 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
675 arvif->vdev_id, ret);
680 static int ath11k_mac_set_kickout(struct ath11k_vif *arvif)
682 struct ath11k *ar = arvif->ar;
691 arvif->vdev_id, ret);
696 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param,
700 arvif->vdev_id, ret);
705 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param,
709 arvif->vdev_id, ret);
714 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param,
718 arvif->vdev_id, ret);
770 static int ath11k_mac_setup_bcn_tmpl(struct ath11k_vif *arvif)
772 struct ath11k *ar = arvif->ar;
775 struct ieee80211_vif *vif = arvif->vif;
782 if (arvif->vdev_type != WMI_VDEV_TYPE_AP)
795 arvif->rsnie_present = true;
797 arvif->rsnie_present = false;
802 arvif->wpaie_present = true;
804 arvif->wpaie_present = false;
806 ret = ath11k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn);
817 static void ath11k_control_beaconing(struct ath11k_vif *arvif,
820 struct ath11k *ar = arvif->ar;
823 lockdep_assert_held(&arvif->ar->conf_mutex);
826 ret = ath11k_wmi_vdev_down(ar, arvif->vdev_id);
829 arvif->vdev_id, ret);
831 arvif->is_up = false;
836 ret = ath11k_mac_setup_bcn_tmpl(arvif);
843 arvif->tx_seq_no = 0x1000;
845 arvif->aid = 0;
847 ether_addr_copy(arvif->bssid, info->bssid);
849 ret = ath11k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid,
850 arvif->bssid);
853 arvif->vdev_id, ret);
857 arvif->is_up = true;
859 ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "mac vdev %d up\n", arvif->vdev_id);
867 struct ath11k_vif *arvif = (void *)vif->drv_priv;
878 arg->vdev_id = arvif->vdev_id;
895 struct ath11k_vif *arvif = (struct ath11k_vif *)vif->drv_priv;
907 if (arvif->rsnie_present || arvif->wpaie_present) {
909 if (arvif->wpaie_present)
953 struct ath11k_vif *arvif = (void *)vif->drv_priv;
971 ratemask &= arvif->bitrate_mask.control[band].legacy;
1016 struct ath11k_vif *arvif = (void *)vif->drv_priv;
1033 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs;
1057 if (arvif->bitrate_mask.control[band].gi != NL80211_TXRATE_FORCE_LGI) {
1177 struct ath11k_vif *arvif = (void *)vif->drv_priv;
1192 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs;
1412 struct ath11k_vif *arvif = (void *)vif->drv_priv;
1414 switch (arvif->vdev_type) {
1444 struct ath11k_vif *arvif,
1454 params.vdev_id = arvif->vdev_id;
1506 params.param, arvif->vdev_id, ret);
1575 struct ath11k_vif *arvif = (void *)vif->drv_priv;
1586 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs;
1587 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs;
1671 static int ath11k_setup_peer_smps(struct ath11k *ar, struct ath11k_vif *arvif,
1686 return ath11k_wmi_set_peer_param(ar, addr, arvif->vdev_id,
1696 struct ath11k_vif *arvif = (void *)vif->drv_priv;
1704 arvif->vdev_id, arvif->bssid, arvif->aid);
1711 bss_conf->bssid, arvif->vdev_id);
1723 bss_conf->bssid, arvif->vdev_id, ret);
1729 bss_conf->bssid, arvif->vdev_id);
1733 ret = ath11k_setup_peer_smps(ar, arvif, bss_conf->bssid,
1737 arvif->vdev_id, ret);
1741 WARN_ON(arvif->is_up);
1743 arvif->aid = bss_conf->aid;
1744 ether_addr_copy(arvif->bssid, bss_conf->bssid);
1746 ret = ath11k_wmi_vdev_up(ar, arvif->vdev_id, arvif->aid, arvif->bssid);
1749 arvif->vdev_id, ret);
1753 arvif->is_up = true;
1757 arvif->vdev_id, bss_conf->bssid, bss_conf->aid);
1760 ret = ath11k_wmi_set_peer_param(ar, arvif->bssid,
1761 arvif->vdev_id,
1767 ret = ath11k_wmi_send_obss_spr_cmd(ar, arvif->vdev_id,
1771 arvif->vdev_id, ret);
1778 struct ath11k_vif *arvif = (void *)vif->drv_priv;
1784 arvif->vdev_id, arvif->bssid);
1786 ret = ath11k_wmi_vdev_down(ar, arvif->vdev_id);
1789 arvif->vdev_id, ret);
1791 arvif->is_up = false;
1825 struct ath11k_vif *arvif = (void *)vif->drv_priv;
1846 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, vdev_param,
1852 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, vdev_param,
1864 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
1880 arvif->beacon_interval = info->beacon_int;
1883 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
1885 arvif->beacon_interval);
1888 arvif->vdev_id);
1892 arvif->beacon_interval, arvif->vdev_id);
1902 arvif->vdev_id);
1906 arvif->vdev_id);
1908 ret = ath11k_mac_setup_bcn_tmpl(arvif);
1914 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
1920 arvif->vdev_id);
1924 arvif->vdev_id);
1929 arvif->dtim_period = info->dtim_period;
1932 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
1934 arvif->dtim_period);
1938 arvif->vdev_id, ret);
1942 arvif->dtim_period, arvif->vdev_id);
1947 arvif->u.ap.ssid_len = info->ssid_len;
1949 memcpy(arvif->u.ap.ssid, info->ssid, info->ssid_len);
1950 arvif->u.ap.hidden_ssid = info->hidden_ssid;
1954 ether_addr_copy(arvif->bssid, info->bssid);
1957 ath11k_control_beaconing(arvif, info);
1965 if (arvif->is_started) {
1966 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
1970 arvif->vdev_id);
1973 cts_prot, arvif->vdev_id);
1989 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
1993 arvif->vdev_id);
1997 slottime, arvif->vdev_id);
2009 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
2013 arvif->vdev_id);
2017 preamble, arvif->vdev_id);
2029 arvif->vdev_id, info->txpower);
2031 arvif->txpower = info->txpower;
2036 !ath11k_mac_vif_chan(arvif->vif, &def)) {
2060 arvif->vdev_id, rate);
2063 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
2068 arvif->vdev_id, ret);
2071 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
2076 arvif->vdev_id, ret);
2080 !ath11k_mac_vif_chan(arvif->vif, &def))
2091 ath11k_wmi_send_obss_spr_cmd(ar, arvif->vdev_id,
2097 ar, arvif->vdev_id, info->he_bss_color.color,
2102 arvif->vdev_id, ret);
2105 arvif->vdev_id,
2109 arvif->vdev_id, ret);
2111 ar, arvif->vdev_id, 0,
2115 arvif->vdev_id, ret);
2289 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
2304 ar->scan.vdev_id = arvif->vdev_id;
2320 arg.vdev_id = arvif->vdev_id;
2382 static int ath11k_install_key(struct ath11k_vif *arvif,
2388 struct ath11k *ar = arvif->ar;
2390 .vdev_id = arvif->vdev_id,
2398 lockdep_assert_held(&arvif->ar->conf_mutex);
2439 ret = ath11k_wmi_vdev_install_key(arvif->ar, &arg);
2450 static int ath11k_clear_peer_keys(struct ath11k_vif *arvif,
2453 struct ath11k *ar = arvif->ar;
2464 peer = ath11k_peer_find(ab, arvif->vdev_id, addr);
2475 ret = ath11k_install_key(arvif, peer->keys[i],
2498 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
2522 else if (arvif->vdev_type == WMI_VDEV_TYPE_STA)
2533 peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr);
2561 ret = ath11k_install_key(arvif, key, cmd, peer_addr, flags);
2567 ret = ath11k_dp_peer_rx_pn_replay_config(arvif, peer_addr, cmd, key);
2574 peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr);
2636 ath11k_mac_set_peer_vht_fixed_rate(struct ath11k_vif *arvif,
2641 struct ath11k *ar = arvif->ar;
2670 arvif->vdev_id,
2686 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
2700 mask = &arvif->bitrate_mask;
2707 sta->addr, arvif->vdev_id, ret);
2713 sta->addr, arvif->vdev_id);
2725 ret = ath11k_mac_set_peer_vht_fixed_rate(arvif, sta, mask,
2737 ret = ath11k_setup_peer_smps(ar, arvif, sta->addr,
2741 arvif->vdev_id, ret);
2746 arvif->num_legacy_stations++;
2747 ret = ath11k_recalc_rtscts_prot(arvif);
2753 ret = ath11k_peer_assoc_qos_ap(ar, arvif, sta);
2756 sta->addr, arvif->vdev_id, ret);
2768 struct ath11k_vif *arvif = (void *)vif->drv_priv;
2774 arvif->num_legacy_stations--;
2775 ret = ath11k_recalc_rtscts_prot(arvif);
2780 ret = ath11k_clear_peer_keys(arvif, sta->addr);
2783 arvif->vdev_id, ret);
2792 struct ath11k_vif *arvif;
2806 arvif = arsta->arvif;
2807 ar = arvif->ar;
2809 if (WARN_ON(ath11k_mac_vif_chan(arvif->vif, &def)))
2813 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs;
2814 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs;
2834 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
2845 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
2856 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
2864 mask = &arvif->bitrate_mask;
2880 ath11k_mac_set_peer_vht_fixed_rate(arvif, sta, mask,
2887 ath11k_peer_assoc_prepare(ar, arvif->vif, sta,
2893 sta->addr, arvif->vdev_id, err);
2897 sta->addr, arvif->vdev_id);
2904 static int ath11k_mac_inc_num_stations(struct ath11k_vif *arvif,
2907 struct ath11k *ar = arvif->ar;
2911 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls)
2922 static void ath11k_mac_dec_num_stations(struct ath11k_vif *arvif,
2925 struct ath11k *ar = arvif->ar;
2929 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls)
2940 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
2947 ret = ath11k_mac_inc_num_stations(arvif, sta);
2960 peer_param.vdev_id = arvif->vdev_id;
2964 ret = ath11k_peer_create(ar, arvif, sta, &peer_param);
2967 sta->addr, arvif->vdev_id);
2972 sta->addr, arvif->vdev_id);
2984 arvif->vdev_id,
2993 ret = ath11k_dp_peer_setup(ar, arvif->vdev_id, sta->addr);
2996 sta->addr, arvif->vdev_id, ret);
3001 !arvif->is_started &&
3002 arvif->vdev_type != WMI_VDEV_TYPE_AP) {
3016 ath11k_peer_delete(ar, arvif->vdev_id, sta->addr);
3021 ath11k_mac_dec_num_stations(arvif, sta);
3033 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
3048 arsta->arvif = arvif;
3054 sta->addr, arvif->vdev_id);
3057 ath11k_dp_peer_cleanup(ar, arvif->vdev_id, sta->addr);
3059 ret = ath11k_peer_delete(ar, arvif->vdev_id, sta->addr);
3062 sta->addr, arvif->vdev_id);
3065 sta->addr, arvif->vdev_id);
3067 ath11k_mac_dec_num_stations(arvif, sta);
3069 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr);
3072 vif->addr, arvif->vdev_id);
3114 struct ath11k_vif *arvif = (void *)vif->drv_priv;
3131 ret = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
3151 struct ath11k_vif *arvif = (void *)vif->drv_priv;
3157 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr);
3161 sta->addr, arvif->vdev_id);
3237 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
3241 if (arvif->vdev_type != WMI_VDEV_TYPE_STA)
3264 arvif->u.sta.uapsd |= value;
3266 arvif->u.sta.uapsd &= ~value;
3268 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id,
3270 arvif->u.sta.uapsd);
3276 if (arvif->u.sta.uapsd)
3281 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id,
3296 struct ath11k_vif *arvif = (void *)vif->drv_priv;
3304 p = &arvif->wmm_params.ac_vo;
3307 p = &arvif->wmm_params.ac_vi;
3310 p = &arvif->wmm_params.ac_be;
3313 p = &arvif->wmm_params.ac_bk;
3327 ret = ath11k_wmi_send_wmm_update_cmd_tlv(ar, arvif->vdev_id,
3328 &arvif->wmm_params);
3410 static int ath11k_mac_set_txbf_conf(struct ath11k_vif *arvif)
3413 struct ath11k *ar = arvif->ar;
3443 arvif->vdev_type == WMI_VDEV_TYPE_AP)
3453 arvif->vdev_type == WMI_VDEV_TYPE_STA)
3457 return ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
3944 static int ath11k_mac_mgmt_tx_wmi(struct ath11k *ar, struct ath11k_vif *arvif,
3982 ret = ath11k_wmi_mgmt_send(ar, arvif->vdev_id, buf_id, skb);
4013 struct ath11k_vif *arvif;
4025 arvif = ath11k_vif_to_arvif(skb_cb->vif);
4027 if (ar->allocated_vdev_map & (1LL << arvif->vdev_id)) {
4028 ret = ath11k_mac_mgmt_tx_wmi(ar, arvif, skb);
4031 arvif->vdev_id, ret);
4039 arvif->vdev_id,
4040 arvif->is_started);
4086 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
4114 ret = ath11k_dp_tx(ar, arvif, skb);
4309 ath11k_mac_setup_vdev_create_params(struct ath11k_vif *arvif,
4312 struct ath11k *ar = arvif->ar;
4315 params->if_id = arvif->vdev_id;
4316 params->type = arvif->vdev_type;
4317 params->subtype = arvif->vdev_subtype;
4368 struct ath11k_vif *arvif)
4375 param_value = ath11k_mac_prepare_he_mode(ar->pdev, arvif->vif->type);
4376 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
4380 arvif->vdev_id, ret, param_value);
4388 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
4392 arvif->vdev_id, ret);
4403 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
4420 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
4424 arvif->vdev_id, ret);
4434 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
4461 memset(arvif, 0, sizeof(*arvif));
4463 arvif->ar = ar;
4464 arvif->vif = vif;
4466 INIT_LIST_HEAD(&arvif->list);
4472 for (i = 0; i < ARRAY_SIZE(arvif->bitrate_mask.control); i++) {
4473 arvif->bitrate_mask.control[i].legacy = 0xffffffff;
4474 memset(arvif->bitrate_mask.control[i].ht_mcs, 0xff,
4475 sizeof(arvif->bitrate_mask.control[i].ht_mcs));
4476 memset(arvif->bitrate_mask.control[i].vht_mcs, 0xff,
4477 sizeof(arvif->bitrate_mask.control[i].vht_mcs));
4482 arvif->vdev_id = bit;
4483 arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE;
4488 arvif->vdev_type = WMI_VDEV_TYPE_STA;
4491 arvif->vdev_subtype = WMI_VDEV_SUBTYPE_MESH_11S;
4494 arvif->vdev_type = WMI_VDEV_TYPE_AP;
4497 arvif->vdev_type = WMI_VDEV_TYPE_MONITOR;
4505 arvif->vdev_id, arvif->vdev_type, arvif->vdev_subtype,
4508 vif->cab_queue = arvif->vdev_id % (ATH11K_HW_MAX_QUEUES - 1);
4512 ath11k_mac_setup_vdev_create_params(arvif, &vdev_param);
4517 arvif->vdev_id, ret);
4523 vif->addr, arvif->vdev_id);
4524 ar->allocated_vdev_map |= 1LL << arvif->vdev_id;
4525 ab->free_vdev_map &= ~(1LL << arvif->vdev_id);
4528 list_add(&arvif->list, &ar->arvifs);
4534 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
4538 arvif->vdev_id, ar->cfg_tx_chainmask, nss, ret);
4542 switch (arvif->vdev_type) {
4544 peer_param.vdev_id = arvif->vdev_id;
4547 ret = ath11k_peer_create(ar, arvif, NULL, &peer_param);
4550 arvif->vdev_id, ret);
4554 ret = ath11k_mac_set_kickout(arvif);
4557 arvif->vdev_id, ret);
4564 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id,
4568 arvif->vdev_id, ret);
4574 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id,
4578 arvif->vdev_id, ret);
4584 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id,
4588 arvif->vdev_id, ret);
4592 ret = ath11k_wmi_pdev_set_ps_mode(ar, arvif->vdev_id, false);
4595 arvif->vdev_id, ret);
4603 arvif->txpower = vif->bss_conf.txpower;
4610 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
4614 arvif->vdev_id, ret);
4617 ath11k_dp_vdev_tx_attach(ar, arvif);
4624 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
4628 arvif->vdev_id);
4631 arvif->vdev_id, vif->addr);
4635 ret = ath11k_wait_for_peer_delete_done(ar, arvif->vdev_id,
4644 ath11k_wmi_vdev_delete(ar, arvif->vdev_id);
4646 ar->allocated_vdev_map &= ~(1LL << arvif->vdev_id);
4647 ab->free_vdev_map |= 1LL << arvif->vdev_id;
4649 list_del(&arvif->list);
4673 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
4681 arvif->vdev_id);
4684 list_del(&arvif->list);
4687 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
4688 ret = ath11k_peer_delete(ar, arvif->vdev_id, vif->addr);
4691 arvif->vdev_id, ret);
4694 ret = ath11k_wmi_vdev_delete(ar, arvif->vdev_id);
4697 arvif->vdev_id, ret);
4701 vif->addr, arvif->vdev_id);
4702 ar->allocated_vdev_map &= ~(1LL << arvif->vdev_id);
4703 ab->free_vdev_map |= 1LL << (arvif->vdev_id);
4705 ath11k_peer_cleanup(ar, arvif->vdev_id);
4891 ath11k_mac_vdev_start_restart(struct ath11k_vif *arvif,
4895 struct ath11k *ar = arvif->ar;
4898 int he_support = arvif->vif->bss_conf.he_support;
4905 arg.vdev_id = arvif->vdev_id;
4906 arg.dtim_period = arvif->dtim_period;
4907 arg.bcn_intval = arvif->beacon_interval;
4923 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
4924 arg.ssid = arvif->u.ap.ssid;
4925 arg.ssid_len = arvif->u.ap.ssid_len;
4926 arg.hidden_ssid = arvif->u.ap.hidden_ssid;
4940 ret = ath11k_set_he_mu_sounding_mode(ar, arvif);
4972 arvif->vif->addr, arvif->vdev_id);
4981 if (arvif->vdev_type == WMI_VDEV_TYPE_AP &&
4990 ret = ath11k_mac_set_txbf_conf(arvif);
4993 arvif->vdev_id, ret);
4998 static int ath11k_mac_vdev_stop(struct ath11k_vif *arvif)
5000 struct ath11k *ar = arvif->ar;
5010 ar->vdev_stop_status.vdev_id = arvif->vdev_id;
5014 ret = ath11k_wmi_vdev_stop(ar, arvif->vdev_id);
5017 arvif->vdev_id, ret);
5024 arvif->vdev_id, ret);
5032 arvif->vif->addr, arvif->vdev_id);
5037 arvif->vdev_id);
5049 static int ath11k_mac_vdev_start(struct ath11k_vif *arvif,
5052 return ath11k_mac_vdev_start_restart(arvif, chandef, false);
5055 static int ath11k_mac_vdev_restart(struct ath11k_vif *arvif,
5058 return ath11k_mac_vdev_start_restart(arvif, chandef, true);
5106 struct ath11k_vif *arvif;
5113 arvif = (void *)vifs[i].vif->drv_priv;
5117 arvif->vdev_id,
5123 if (WARN_ON(!arvif->is_started))
5126 if (WARN_ON(!arvif->is_up))
5129 ret = ath11k_wmi_vdev_down(ar, arvif->vdev_id);
5132 arvif->vdev_id, ret);
5144 arvif = (void *)vifs[i].vif->drv_priv;
5146 if (WARN_ON(!arvif->is_started))
5149 if (WARN_ON(!arvif->is_up))
5152 ret = ath11k_mac_vdev_restart(arvif, &vifs[i].new_ctx->def);
5155 arvif->vdev_id, ret);
5159 ret = ath11k_mac_setup_bcn_tmpl(arvif);
5164 ret = ath11k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid,
5165 arvif->bssid);
5168 arvif->vdev_id, ret);
5236 struct ath11k_vif *arvif = (void *)vif->drv_priv;
5239 if (WARN_ON(arvif->is_started))
5242 ret = ath11k_mac_vdev_start(arvif, &arvif->chanctx.def);
5245 arvif->vdev_id, vif->addr,
5246 arvif->chanctx.def.chan->center_freq, ret);
5250 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
5251 ret = ath11k_monitor_vdev_up(ar, arvif->vdev_id);
5258 arvif->is_started = true;
5271 struct ath11k_vif *arvif = (void *)vif->drv_priv;
5279 ctx, arvif->vdev_id);
5283 arvif->vdev_type != WMI_VDEV_TYPE_AP &&
5284 arvif->vdev_type != WMI_VDEV_TYPE_MONITOR &&
5285 !ath11k_peer_find_by_vdev_id(ab, arvif->vdev_id)) {
5286 memcpy(&arvif->chanctx, ctx, sizeof(*ctx));
5291 if (WARN_ON(arvif->is_started)) {
5297 arvif->vdev_type != WMI_VDEV_TYPE_AP &&
5298 arvif->vdev_type != WMI_VDEV_TYPE_MONITOR) {
5299 param.vdev_id = arvif->vdev_id;
5303 ret = ath11k_peer_create(ar, arvif, NULL, ¶m);
5311 ret = ath11k_mac_vdev_start(arvif, &ctx->def);
5314 arvif->vdev_id, vif->addr,
5318 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
5319 ret = ath11k_monitor_vdev_up(ar, arvif->vdev_id);
5324 arvif->is_started = true;
5343 struct ath11k_vif *arvif = (void *)vif->drv_priv;
5351 ctx, arvif->vdev_id);
5353 WARN_ON(!arvif->is_started);
5356 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
5361 ath11k_peer_delete(ar, arvif->vdev_id, ar->mac_addr);
5364 ret = ath11k_mac_vdev_stop(arvif);
5367 arvif->vdev_id, ret);
5369 arvif->is_started = false;
5372 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR)
5373 ath11k_wmi_vdev_down(ar, arvif->vdev_id);
5401 struct ath11k_vif *arvif;
5405 list_for_each_entry(arvif, &ar->arvifs, list) {
5407 param, arvif->vdev_id, value);
5409 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
5413 param, arvif->vdev_id, ret);
5578 static int ath11k_mac_set_fixed_rate_params(struct ath11k_vif *arvif,
5581 struct ath11k *ar = arvif->ar;
5588 arvif->vdev_id, rate, nss, sgi);
5591 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
5600 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
5609 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
5618 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
5657 struct ath11k_vif *arvif = data;
5659 struct ath11k *ar = arvif->ar;
5671 struct ath11k_vif *arvif = data;
5672 struct ath11k *ar = arvif->ar;
5676 arvif->vdev_id,
5690 struct ath11k_vif *arvif = (void *)vif->drv_priv;
5692 struct ath11k *ar = arvif->ar;
5729 arvif->vdev_id, ret);
5734 arvif);
5780 arvif);
5784 arvif->bitrate_mask = *mask;
5787 arvif);
5794 ret = ath11k_mac_set_fixed_rate_params(arvif, rate, nss, sgi, ldpc);
5797 arvif->vdev_id, ret);