Lines Matching refs:arvif
569 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_get_arvif_iter() local
571 if (arvif->vdev_id == arvif_iter->vdev_id) in ath11k_get_arvif_iter()
572 arvif_iter->arvif = arvif; in ath11k_get_arvif_iter()
588 if (!arvif_iter.arvif) { in ath11k_mac_get_arvif()
593 return arvif_iter.arvif; in ath11k_mac_get_arvif()
601 struct ath11k_vif *arvif; in ath11k_mac_get_arvif_by_vdev_id() local
607 arvif = ath11k_mac_get_arvif(pdev->ar, vdev_id); in ath11k_mac_get_arvif_by_vdev_id()
608 if (arvif) in ath11k_mac_get_arvif_by_vdev_id()
609 return arvif; in ath11k_mac_get_arvif_by_vdev_id()
662 struct ath11k_vif *arvif; in ath11k_mac_get_vif_up() local
668 list_for_each_entry(arvif, &ar->arvifs, list) { in ath11k_mac_get_vif_up()
669 if (arvif->is_up) in ath11k_mac_get_vif_up()
670 return arvif; in ath11k_mac_get_vif_up()
684 u8 ath11k_mac_get_target_pdev_id_from_vif(struct ath11k_vif *arvif) in ath11k_mac_get_target_pdev_id_from_vif() argument
686 struct ath11k *ar = arvif->ar; in ath11k_mac_get_target_pdev_id_from_vif()
688 struct ieee80211_vif *vif = arvif->vif; in ath11k_mac_get_target_pdev_id_from_vif()
709 struct ath11k_vif *arvif; in ath11k_mac_get_target_pdev_id() local
711 arvif = ath11k_mac_get_vif_up(ar->ab); in ath11k_mac_get_target_pdev_id()
713 if (arvif) in ath11k_mac_get_target_pdev_id()
714 return ath11k_mac_get_target_pdev_id_from_vif(arvif); in ath11k_mac_get_target_pdev_id()
740 struct ath11k_vif *arvif; in ath11k_mac_txpower_recalc() local
746 list_for_each_entry(arvif, &ar->arvifs, list) { in ath11k_mac_txpower_recalc()
747 if (arvif->txpower <= 0) in ath11k_mac_txpower_recalc()
751 txpower = arvif->txpower; in ath11k_mac_txpower_recalc()
753 txpower = min(txpower, arvif->txpower); in ath11k_mac_txpower_recalc()
794 static int ath11k_recalc_rtscts_prot(struct ath11k_vif *arvif) in ath11k_recalc_rtscts_prot() argument
796 struct ath11k *ar = arvif->ar; in ath11k_recalc_rtscts_prot()
810 if (arvif->num_legacy_stations > 0) in ath11k_recalc_rtscts_prot()
816 if (arvif->rtscts_prot_mode == rts_cts) in ath11k_recalc_rtscts_prot()
819 arvif->rtscts_prot_mode = rts_cts; in ath11k_recalc_rtscts_prot()
822 arvif->vdev_id, rts_cts); in ath11k_recalc_rtscts_prot()
824 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_recalc_rtscts_prot()
828 arvif->vdev_id, ret); in ath11k_recalc_rtscts_prot()
833 static int ath11k_mac_set_kickout(struct ath11k_vif *arvif) in ath11k_mac_set_kickout() argument
835 struct ath11k *ar = arvif->ar; in ath11k_mac_set_kickout()
844 arvif->vdev_id, ret); in ath11k_mac_set_kickout()
849 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath11k_mac_set_kickout()
853 arvif->vdev_id, ret); in ath11k_mac_set_kickout()
858 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath11k_mac_set_kickout()
862 arvif->vdev_id, ret); in ath11k_mac_set_kickout()
867 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath11k_mac_set_kickout()
871 arvif->vdev_id, ret); in ath11k_mac_set_kickout()
1218 static int ath11k_mac_vif_setup_ps(struct ath11k_vif *arvif) in ath11k_mac_vif_setup_ps() argument
1220 struct ath11k *ar = arvif->ar; in ath11k_mac_vif_setup_ps()
1221 struct ieee80211_vif *vif = arvif->vif; in ath11k_mac_vif_setup_ps()
1229 lockdep_assert_held(&arvif->ar->conf_mutex); in ath11k_mac_vif_setup_ps()
1231 if (arvif->vif->type != NL80211_IFTYPE_STATION) in ath11k_mac_vif_setup_ps()
1234 enable_ps = arvif->ps; in ath11k_mac_vif_setup_ps()
1236 if (!arvif->is_started) { in ath11k_mac_vif_setup_ps()
1253 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id, param, in ath11k_mac_vif_setup_ps()
1257 arvif->vdev_id, ret); in ath11k_mac_vif_setup_ps()
1265 arvif->vdev_id, psmode ? "enable" : "disable"); in ath11k_mac_vif_setup_ps()
1267 ret = ath11k_wmi_pdev_set_ps_mode(ar, arvif->vdev_id, psmode); in ath11k_mac_vif_setup_ps()
1270 psmode, arvif->vdev_id, ret); in ath11k_mac_vif_setup_ps()
1279 struct ath11k_vif *arvif; in ath11k_mac_config_ps() local
1284 list_for_each_entry(arvif, &ar->arvifs, list) { in ath11k_mac_config_ps()
1285 ret = ath11k_mac_vif_setup_ps(arvif); in ath11k_mac_config_ps()
1357 static void ath11k_mac_setup_nontx_vif_rsnie(struct ath11k_vif *arvif, in ath11k_mac_setup_nontx_vif_rsnie() argument
1362 arvif->rsnie_present = true; in ath11k_mac_setup_nontx_vif_rsnie()
1375 arvif->rsnie_present = false; in ath11k_mac_setup_nontx_vif_rsnie()
1383 struct ath11k_vif *arvif, in ath11k_mac_set_nontx_vif_params() argument
1396 arvif->rsnie_present = tx_arvif->rsnie_present; in ath11k_mac_set_nontx_vif_params()
1417 if (profile[2] == arvif->vif->bss_conf.bssid_index) { in ath11k_mac_set_nontx_vif_params()
1420 ath11k_mac_setup_nontx_vif_rsnie(arvif, in ath11k_mac_set_nontx_vif_params()
1435 static void ath11k_mac_set_vif_params(struct ath11k_vif *arvif, in ath11k_mac_set_vif_params() argument
1446 arvif->rsnie_present = true; in ath11k_mac_set_vif_params()
1448 arvif->rsnie_present = false; in ath11k_mac_set_vif_params()
1453 arvif->wpaie_present = true; in ath11k_mac_set_vif_params()
1455 arvif->wpaie_present = false; in ath11k_mac_set_vif_params()
1458 static int ath11k_mac_setup_bcn_tmpl_ema(struct ath11k_vif *arvif) in ath11k_mac_setup_bcn_tmpl_ema() argument
1467 tx_arvif = (void *)arvif->vif->mbssid_tx_vif->drv_priv; in ath11k_mac_setup_bcn_tmpl_ema()
1472 ath11k_warn(arvif->ar->ab, in ath11k_mac_setup_bcn_tmpl_ema()
1477 if (tx_arvif == arvif) in ath11k_mac_setup_bcn_tmpl_ema()
1480 arvif->wpaie_present = tx_arvif->wpaie_present; in ath11k_mac_setup_bcn_tmpl_ema()
1483 if (tx_arvif != arvif && !nontx_vif_params_set) in ath11k_mac_setup_bcn_tmpl_ema()
1485 ath11k_mac_set_nontx_vif_params(tx_arvif, arvif, in ath11k_mac_setup_bcn_tmpl_ema()
1506 if (tx_arvif != arvif && !nontx_vif_params_set) in ath11k_mac_setup_bcn_tmpl_ema()
1512 static int ath11k_mac_setup_bcn_tmpl_mbssid(struct ath11k_vif *arvif) in ath11k_mac_setup_bcn_tmpl_mbssid() argument
1514 struct ath11k *ar = arvif->ar; in ath11k_mac_setup_bcn_tmpl_mbssid()
1516 struct ath11k_vif *tx_arvif = arvif; in ath11k_mac_setup_bcn_tmpl_mbssid()
1518 struct ieee80211_vif *vif = arvif->vif; in ath11k_mac_setup_bcn_tmpl_mbssid()
1523 if (arvif->vif->mbssid_tx_vif) { in ath11k_mac_setup_bcn_tmpl_mbssid()
1524 tx_arvif = (void *)arvif->vif->mbssid_tx_vif->drv_priv; in ath11k_mac_setup_bcn_tmpl_mbssid()
1525 if (tx_arvif != arvif) { in ath11k_mac_setup_bcn_tmpl_mbssid()
1539 if (tx_arvif == arvif) in ath11k_mac_setup_bcn_tmpl_mbssid()
1541 else if (!ath11k_mac_set_nontx_vif_params(tx_arvif, arvif, bcn)) in ath11k_mac_setup_bcn_tmpl_mbssid()
1544 ret = ath11k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn, 0); in ath11k_mac_setup_bcn_tmpl_mbssid()
1554 static int ath11k_mac_setup_bcn_tmpl(struct ath11k_vif *arvif) in ath11k_mac_setup_bcn_tmpl() argument
1556 struct ieee80211_vif *vif = arvif->vif; in ath11k_mac_setup_bcn_tmpl()
1558 if (arvif->vdev_type != WMI_VDEV_TYPE_AP) in ath11k_mac_setup_bcn_tmpl()
1565 arvif != (void *)vif->mbssid_tx_vif->drv_priv && arvif->is_up) in ath11k_mac_setup_bcn_tmpl()
1569 return ath11k_mac_setup_bcn_tmpl_ema(arvif); in ath11k_mac_setup_bcn_tmpl()
1571 return ath11k_mac_setup_bcn_tmpl_mbssid(arvif); in ath11k_mac_setup_bcn_tmpl()
1574 void ath11k_mac_bcn_tx_event(struct ath11k_vif *arvif) in ath11k_mac_bcn_tx_event() argument
1576 struct ieee80211_vif *vif = arvif->vif; in ath11k_mac_bcn_tx_event()
1578 if (!vif->bss_conf.color_change_active && !arvif->bcca_zero_sent) in ath11k_mac_bcn_tx_event()
1583 arvif->bcca_zero_sent = true; in ath11k_mac_bcn_tx_event()
1588 arvif->bcca_zero_sent = false; in ath11k_mac_bcn_tx_event()
1592 ath11k_mac_setup_bcn_tmpl(arvif); in ath11k_mac_bcn_tx_event()
1595 static void ath11k_control_beaconing(struct ath11k_vif *arvif, in ath11k_control_beaconing() argument
1598 struct ath11k *ar = arvif->ar; in ath11k_control_beaconing()
1602 lockdep_assert_held(&arvif->ar->conf_mutex); in ath11k_control_beaconing()
1605 ret = ath11k_wmi_vdev_down(ar, arvif->vdev_id); in ath11k_control_beaconing()
1608 arvif->vdev_id, ret); in ath11k_control_beaconing()
1610 arvif->is_up = false; in ath11k_control_beaconing()
1615 ret = ath11k_mac_setup_bcn_tmpl(arvif); in ath11k_control_beaconing()
1622 arvif->tx_seq_no = 0x1000; in ath11k_control_beaconing()
1624 arvif->aid = 0; in ath11k_control_beaconing()
1626 ether_addr_copy(arvif->bssid, info->bssid); in ath11k_control_beaconing()
1628 if (arvif->vif->mbssid_tx_vif) in ath11k_control_beaconing()
1629 tx_arvif = (struct ath11k_vif *)arvif->vif->mbssid_tx_vif->drv_priv; in ath11k_control_beaconing()
1631 ret = ath11k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, in ath11k_control_beaconing()
1632 arvif->bssid, in ath11k_control_beaconing()
1638 arvif->vdev_id, ret); in ath11k_control_beaconing()
1642 arvif->is_up = true; in ath11k_control_beaconing()
1644 ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "vdev %d up\n", arvif->vdev_id); in ath11k_control_beaconing()
1652 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_handle_beacon_iter() local
1660 cancel_delayed_work(&arvif->connection_loss_work); in ath11k_mac_handle_beacon_iter()
1675 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_handle_beacon_miss_iter() local
1676 struct ath11k *ar = arvif->ar; in ath11k_mac_handle_beacon_miss_iter()
1679 if (arvif->vdev_id != *vdev_id) in ath11k_mac_handle_beacon_miss_iter()
1682 if (!arvif->is_up) in ath11k_mac_handle_beacon_miss_iter()
1692 ieee80211_queue_delayed_work(hw, &arvif->connection_loss_work, in ath11k_mac_handle_beacon_miss_iter()
1706 struct ath11k_vif *arvif = container_of(work, struct ath11k_vif, in ath11k_mac_vif_sta_connection_loss_work() local
1708 struct ieee80211_vif *vif = arvif->vif; in ath11k_mac_vif_sta_connection_loss_work()
1710 if (!arvif->is_up) in ath11k_mac_vif_sta_connection_loss_work()
1721 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_peer_assoc_h_basic() local
1732 arg->vdev_id = arvif->vdev_id; in ath11k_peer_assoc_h_basic()
1749 struct ath11k_vif *arvif = (struct ath11k_vif *)vif->drv_priv; in ath11k_peer_assoc_h_crypto() local
1761 if (arvif->rsnie_present || arvif->wpaie_present) { in ath11k_peer_assoc_h_crypto()
1763 if (arvif->wpaie_present) in ath11k_peer_assoc_h_crypto()
1807 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_peer_assoc_h_rates() local
1825 ratemask &= arvif->bitrate_mask.control[band].legacy; in ath11k_peer_assoc_h_rates()
1870 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_peer_assoc_h_ht() local
1887 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs; in ath11k_peer_assoc_h_ht()
1915 if (arvif->bitrate_mask.control[band].gi == NL80211_TXRATE_DEFAULT_GI) in ath11k_peer_assoc_h_ht()
1919 if (arvif->bitrate_mask.control[band].gi != NL80211_TXRATE_FORCE_LGI) { in ath11k_peer_assoc_h_ht()
2067 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_peer_assoc_h_vht() local
2084 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs; in ath11k_peer_assoc_h_vht()
2264 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_peer_assoc_h_he() local
2285 memcpy(he_mcs_mask, arvif->bitrate_mask.control[band].he_mcs, in ath11k_peer_assoc_h_he()
2587 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_peer_assoc_h_qos() local
2589 switch (arvif->vdev_type) { in ath11k_peer_assoc_h_qos()
2619 struct ath11k_vif *arvif, in ath11k_peer_assoc_qos_ap() argument
2629 params.vdev_id = arvif->vdev_id; in ath11k_peer_assoc_qos_ap()
2681 params.param, arvif->vdev_id, ret); in ath11k_peer_assoc_qos_ap()
2750 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_peer_assoc_h_phymode() local
2762 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs; in ath11k_peer_assoc_h_phymode()
2763 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs; in ath11k_peer_assoc_h_phymode()
2764 he_mcs_mask = arvif->bitrate_mask.control[band].he_mcs; in ath11k_peer_assoc_h_phymode()
2857 static int ath11k_setup_peer_smps(struct ath11k *ar, struct ath11k_vif *arvif, in ath11k_setup_peer_smps() argument
2877 return ath11k_wmi_set_peer_param(ar, addr, arvif->vdev_id, in ath11k_setup_peer_smps()
2882 static bool ath11k_mac_set_he_txbf_conf(struct ath11k_vif *arvif) in ath11k_mac_set_he_txbf_conf() argument
2884 struct ath11k *ar = arvif->ar; in ath11k_mac_set_he_txbf_conf()
2888 if (!arvif->vif->bss_conf.he_support) in ath11k_mac_set_he_txbf_conf()
2893 if (arvif->vif->bss_conf.he_su_beamformer) { in ath11k_mac_set_he_txbf_conf()
2895 if (arvif->vif->bss_conf.he_mu_beamformer && in ath11k_mac_set_he_txbf_conf()
2896 arvif->vdev_type == WMI_VDEV_TYPE_AP) in ath11k_mac_set_he_txbf_conf()
2900 if (arvif->vif->type != NL80211_IFTYPE_MESH_POINT) { in ath11k_mac_set_he_txbf_conf()
2904 if (arvif->vif->bss_conf.he_full_ul_mumimo) in ath11k_mac_set_he_txbf_conf()
2907 if (arvif->vif->bss_conf.he_su_beamformee) in ath11k_mac_set_he_txbf_conf()
2911 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, value); in ath11k_mac_set_he_txbf_conf()
2914 arvif->vdev_id, ret); in ath11k_mac_set_he_txbf_conf()
2922 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_set_he_txbf_conf()
2926 arvif->vdev_id, ret); in ath11k_mac_set_he_txbf_conf()
2936 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_vif_recalc_sta_he_txbf() local
2983 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, hemode); in ath11k_mac_vif_recalc_sta_he_txbf()
2998 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_bss_assoc() local
3009 arvif->vdev_id, arvif->bssid, arvif->aid); in ath11k_bss_assoc()
3016 bss_conf->bssid, arvif->vdev_id); in ath11k_bss_assoc()
3032 bss_conf->bssid, arvif->vdev_id, ret); in ath11k_bss_assoc()
3038 bss_conf->bssid, arvif->vdev_id); in ath11k_bss_assoc()
3042 ret = ath11k_setup_peer_smps(ar, arvif, bss_conf->bssid, in ath11k_bss_assoc()
3047 arvif->vdev_id, ret); in ath11k_bss_assoc()
3053 arvif->vdev_id, bss_conf->bssid); in ath11k_bss_assoc()
3057 WARN_ON(arvif->is_up); in ath11k_bss_assoc()
3059 arvif->aid = vif->cfg.aid; in ath11k_bss_assoc()
3060 ether_addr_copy(arvif->bssid, bss_conf->bssid); in ath11k_bss_assoc()
3062 ret = ath11k_wmi_vdev_up(ar, arvif->vdev_id, arvif->aid, arvif->bssid, in ath11k_bss_assoc()
3066 arvif->vdev_id, ret); in ath11k_bss_assoc()
3070 arvif->is_up = true; in ath11k_bss_assoc()
3071 arvif->rekey_data.enable_offload = false; in ath11k_bss_assoc()
3075 arvif->vdev_id, bss_conf->bssid, vif->cfg.aid); in ath11k_bss_assoc()
3079 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, arvif->bssid); in ath11k_bss_assoc()
3086 ret = ath11k_wmi_set_peer_param(ar, arvif->bssid, in ath11k_bss_assoc()
3087 arvif->vdev_id, in ath11k_bss_assoc()
3094 ret = ath11k_wmi_send_obss_spr_cmd(ar, arvif->vdev_id, in ath11k_bss_assoc()
3098 arvif->vdev_id, ret); in ath11k_bss_assoc()
3100 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_bss_assoc()
3105 arvif->vdev_id, ret); in ath11k_bss_assoc()
3114 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_bss_disassoc() local
3120 arvif->vdev_id, arvif->bssid); in ath11k_bss_disassoc()
3122 ret = ath11k_wmi_vdev_down(ar, arvif->vdev_id); in ath11k_bss_disassoc()
3125 arvif->vdev_id, ret); in ath11k_bss_disassoc()
3127 arvif->is_up = false; in ath11k_bss_disassoc()
3129 memset(&arvif->rekey_data, 0, sizeof(arvif->rekey_data)); in ath11k_bss_disassoc()
3131 cancel_delayed_work_sync(&arvif->connection_loss_work); in ath11k_bss_disassoc()
3163 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_recalculate_mgmt_rate() local
3184 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, vdev_param, in ath11k_recalculate_mgmt_rate()
3195 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, vdev_param, in ath11k_recalculate_mgmt_rate()
3201 static int ath11k_mac_fils_discovery(struct ath11k_vif *arvif, in ath11k_mac_fils_discovery() argument
3204 struct ath11k *ar = arvif->ar; in ath11k_mac_fils_discovery()
3213 tmpl = ieee80211_get_fils_discovery_tmpl(ar->hw, arvif->vif); in ath11k_mac_fils_discovery()
3215 ret = ath11k_wmi_fils_discovery_tmpl(ar, arvif->vdev_id, in ath11k_mac_fils_discovery()
3222 arvif->vif); in ath11k_mac_fils_discovery()
3224 ret = ath11k_wmi_probe_resp_tmpl(ar, arvif->vdev_id, in ath11k_mac_fils_discovery()
3227 return ath11k_wmi_fils_discovery(ar, arvif->vdev_id, 0, false); in ath11k_mac_fils_discovery()
3233 arvif->vdev_id, (unsol_bcast_probe_resp_enabled ? in ath11k_mac_fils_discovery()
3241 ret = ath11k_wmi_fils_discovery(ar, arvif->vdev_id, interval, in ath11k_mac_fils_discovery()
3405 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_bss_info_changed() local
3422 arvif->beacon_interval = info->beacon_int; in ath11k_mac_op_bss_info_changed()
3425 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3427 arvif->beacon_interval); in ath11k_mac_op_bss_info_changed()
3430 arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3434 arvif->beacon_interval, arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3444 arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3448 arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3450 if (!arvif->do_not_send_tmpl || !arvif->bcca_zero_sent) { in ath11k_mac_op_bss_info_changed()
3451 ret = ath11k_mac_setup_bcn_tmpl(arvif); in ath11k_mac_op_bss_info_changed()
3457 if (arvif->bcca_zero_sent) in ath11k_mac_op_bss_info_changed()
3458 arvif->do_not_send_tmpl = true; in ath11k_mac_op_bss_info_changed()
3460 arvif->do_not_send_tmpl = false; in ath11k_mac_op_bss_info_changed()
3463 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3469 arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3473 arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3478 arvif->dtim_period = info->dtim_period; in ath11k_mac_op_bss_info_changed()
3481 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3483 arvif->dtim_period); in ath11k_mac_op_bss_info_changed()
3487 arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3491 arvif->dtim_period, arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3496 arvif->u.ap.ssid_len = vif->cfg.ssid_len; in ath11k_mac_op_bss_info_changed()
3498 memcpy(arvif->u.ap.ssid, vif->cfg.ssid, in ath11k_mac_op_bss_info_changed()
3500 arvif->u.ap.hidden_ssid = info->hidden_ssid; in ath11k_mac_op_bss_info_changed()
3504 ether_addr_copy(arvif->bssid, info->bssid); in ath11k_mac_op_bss_info_changed()
3508 ath11k_mac_set_he_txbf_conf(arvif); in ath11k_mac_op_bss_info_changed()
3509 ath11k_control_beaconing(arvif, info); in ath11k_mac_op_bss_info_changed()
3511 if (arvif->is_up && vif->bss_conf.he_support && in ath11k_mac_op_bss_info_changed()
3515 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3519 param_value, arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3523 param_value, arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3533 if (arvif->is_started) { in ath11k_mac_op_bss_info_changed()
3534 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3538 arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3541 cts_prot, arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3557 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3561 arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3565 slottime, arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3577 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3581 arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3585 preamble, arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3597 arvif->vdev_id, info->txpower); in ath11k_mac_op_bss_info_changed()
3599 arvif->txpower = info->txpower; in ath11k_mac_op_bss_info_changed()
3605 arvif->ps = vif->cfg.ps; in ath11k_mac_op_bss_info_changed()
3610 arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3614 !ath11k_mac_vif_chan(arvif->vif, &def)) { in ath11k_mac_op_bss_info_changed()
3638 arvif->vdev_id, rate); in ath11k_mac_op_bss_info_changed()
3641 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3646 arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3649 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3654 arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3658 !ath11k_mac_vif_chan(arvif->vif, &def)) in ath11k_mac_op_bss_info_changed()
3679 ar, arvif->vdev_id, info->he_bss_color.color, in ath11k_mac_op_bss_info_changed()
3684 arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3693 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3699 arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3703 param_value, arvif->vdev_id); in ath11k_mac_op_bss_info_changed()
3706 arvif->vdev_id, in ath11k_mac_op_bss_info_changed()
3710 arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3712 ar, arvif->vdev_id, 0, in ath11k_mac_op_bss_info_changed()
3716 arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3721 arvif->ftm_responder != info->ftm_responder && in ath11k_mac_op_bss_info_changed()
3725 arvif->ftm_responder = info->ftm_responder; in ath11k_mac_op_bss_info_changed()
3727 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath11k_mac_op_bss_info_changed()
3728 arvif->ftm_responder); in ath11k_mac_op_bss_info_changed()
3731 arvif->vdev_id, ret); in ath11k_mac_op_bss_info_changed()
3736 ath11k_mac_fils_discovery(arvif, info); in ath11k_mac_op_bss_info_changed()
3740 memcpy(arvif->arp_ns_offload.ipv4_addr, in ath11k_mac_op_bss_info_changed()
3743 memcpy(arvif->arp_ns_offload.mac_addr, vif->addr, ETH_ALEN); in ath11k_mac_op_bss_info_changed()
3744 arvif->arp_ns_offload.ipv4_count = ipv4_cnt; in ath11k_mac_op_bss_info_changed()
3748 vif->addr, arvif->arp_ns_offload.ipv4_addr); in ath11k_mac_op_bss_info_changed()
3932 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_hw_scan() local
3949 ath11k_mac_11d_scan_start(ar, arvif->vdev_id); in ath11k_mac_op_hw_scan()
3960 ar->scan.vdev_id = arvif->vdev_id; in ath11k_mac_op_hw_scan()
3982 arg->vdev_id = arvif->vdev_id; in ath11k_mac_op_hw_scan()
4087 ath11k_mac_11d_scan_start(ar, arvif->vdev_id); in ath11k_mac_op_hw_scan()
4104 static int ath11k_install_key(struct ath11k_vif *arvif, in ath11k_install_key() argument
4110 struct ath11k *ar = arvif->ar; in ath11k_install_key()
4112 .vdev_id = arvif->vdev_id, in ath11k_install_key()
4120 lockdep_assert_held(&arvif->ar->conf_mutex); in ath11k_install_key()
4161 ret = ath11k_wmi_vdev_install_key(arvif->ar, &arg); in ath11k_install_key()
4172 static int ath11k_clear_peer_keys(struct ath11k_vif *arvif, in ath11k_clear_peer_keys() argument
4175 struct ath11k *ar = arvif->ar; in ath11k_clear_peer_keys()
4186 peer = ath11k_peer_find(ab, arvif->vdev_id, addr); in ath11k_clear_peer_keys()
4197 ret = ath11k_install_key(arvif, peer->keys[i], in ath11k_clear_peer_keys()
4220 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_set_key() local
4244 else if (arvif->vdev_type == WMI_VDEV_TYPE_STA) in ath11k_mac_op_set_key()
4255 peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr); in ath11k_mac_op_set_key()
4283 ret = ath11k_install_key(arvif, key, cmd, peer_addr, flags); in ath11k_mac_op_set_key()
4289 ret = ath11k_dp_peer_rx_pn_replay_config(arvif, peer_addr, cmd, key); in ath11k_mac_op_set_key()
4296 peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr); in ath11k_mac_op_set_key()
4386 ath11k_mac_set_peer_vht_fixed_rate(struct ath11k_vif *arvif, in ath11k_mac_set_peer_vht_fixed_rate() argument
4391 struct ath11k *ar = arvif->ar; in ath11k_mac_set_peer_vht_fixed_rate()
4424 arvif->vdev_id, in ath11k_mac_set_peer_vht_fixed_rate()
4436 ath11k_mac_set_peer_he_fixed_rate(struct ath11k_vif *arvif, in ath11k_mac_set_peer_he_fixed_rate() argument
4441 struct ath11k *ar = arvif->ar; in ath11k_mac_set_peer_he_fixed_rate()
4475 arvif->vdev_id, in ath11k_mac_set_peer_he_fixed_rate()
4487 ath11k_mac_set_peer_ht_fixed_rate(struct ath11k_vif *arvif, in ath11k_mac_set_peer_ht_fixed_rate() argument
4492 struct ath11k *ar = arvif->ar; in ath11k_mac_set_peer_ht_fixed_rate()
4523 arvif->vdev_id, in ath11k_mac_set_peer_ht_fixed_rate()
4539 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_station_assoc() local
4553 mask = &arvif->bitrate_mask; in ath11k_station_assoc()
4561 sta->addr, arvif->vdev_id, ret); in ath11k_station_assoc()
4567 sta->addr, arvif->vdev_id); in ath11k_station_assoc()
4581 ret = ath11k_mac_set_peer_vht_fixed_rate(arvif, sta, mask, in ath11k_station_assoc()
4586 ret = ath11k_mac_set_peer_he_fixed_rate(arvif, sta, mask, in ath11k_station_assoc()
4591 ret = ath11k_mac_set_peer_ht_fixed_rate(arvif, sta, mask, in ath11k_station_assoc()
4603 ret = ath11k_setup_peer_smps(ar, arvif, sta->addr, in ath11k_station_assoc()
4608 arvif->vdev_id, ret); in ath11k_station_assoc()
4613 arvif->num_legacy_stations++; in ath11k_station_assoc()
4614 ret = ath11k_recalc_rtscts_prot(arvif); in ath11k_station_assoc()
4620 ret = ath11k_peer_assoc_qos_ap(ar, arvif, sta); in ath11k_station_assoc()
4623 sta->addr, arvif->vdev_id, ret); in ath11k_station_assoc()
4635 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_station_disassoc() local
4641 arvif->num_legacy_stations--; in ath11k_station_disassoc()
4642 ret = ath11k_recalc_rtscts_prot(arvif); in ath11k_station_disassoc()
4647 ret = ath11k_clear_peer_keys(arvif, sta->addr); in ath11k_station_disassoc()
4650 arvif->vdev_id, ret); in ath11k_station_disassoc()
4659 struct ath11k_vif *arvif; in ath11k_sta_rc_update_wk() local
4675 arvif = arsta->arvif; in ath11k_sta_rc_update_wk()
4676 ar = arvif->ar; in ath11k_sta_rc_update_wk()
4678 if (WARN_ON(ath11k_mac_vif_chan(arvif->vif, &def))) in ath11k_sta_rc_update_wk()
4682 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs; in ath11k_sta_rc_update_wk()
4683 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs; in ath11k_sta_rc_update_wk()
4684 he_mcs_mask = arvif->bitrate_mask.control[band].he_mcs; in ath11k_sta_rc_update_wk()
4707 ath11k_peer_assoc_h_phymode(ar, arvif->vif, sta, &peer_arg); in ath11k_sta_rc_update_wk()
4720 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath11k_sta_rc_update_wk()
4729 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath11k_sta_rc_update_wk()
4742 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath11k_sta_rc_update_wk()
4751 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath11k_sta_rc_update_wk()
4764 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath11k_sta_rc_update_wk()
4775 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath11k_sta_rc_update_wk()
4783 mask = &arvif->bitrate_mask; in ath11k_sta_rc_update_wk()
4803 ath11k_mac_set_peer_vht_fixed_rate(arvif, sta, mask, in ath11k_sta_rc_update_wk()
4806 ath11k_mac_set_peer_he_fixed_rate(arvif, sta, mask, in ath11k_sta_rc_update_wk()
4809 ath11k_mac_set_peer_ht_fixed_rate(arvif, sta, mask, in ath11k_sta_rc_update_wk()
4819 arvif->vdev_id, in ath11k_sta_rc_update_wk()
4827 ath11k_peer_assoc_prepare(ar, arvif->vif, sta, in ath11k_sta_rc_update_wk()
4834 sta->addr, arvif->vdev_id, err); in ath11k_sta_rc_update_wk()
4838 sta->addr, arvif->vdev_id); in ath11k_sta_rc_update_wk()
4849 struct ath11k_vif *arvif; in ath11k_sta_set_4addr_wk() local
4856 arvif = arsta->arvif; in ath11k_sta_set_4addr_wk()
4857 ar = arvif->ar; in ath11k_sta_set_4addr_wk()
4863 arvif->vdev_id, in ath11k_sta_set_4addr_wk()
4871 static int ath11k_mac_inc_num_stations(struct ath11k_vif *arvif, in ath11k_mac_inc_num_stations() argument
4874 struct ath11k *ar = arvif->ar; in ath11k_mac_inc_num_stations()
4878 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls) in ath11k_mac_inc_num_stations()
4889 static void ath11k_mac_dec_num_stations(struct ath11k_vif *arvif, in ath11k_mac_dec_num_stations() argument
4892 struct ath11k *ar = arvif->ar; in ath11k_mac_dec_num_stations()
4896 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls) in ath11k_mac_dec_num_stations()
4907 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_station_add() local
4914 ret = ath11k_mac_inc_num_stations(arvif, sta); in ath11k_mac_station_add()
4927 peer_param.vdev_id = arvif->vdev_id; in ath11k_mac_station_add()
4931 ret = ath11k_peer_create(ar, arvif, sta, &peer_param); in ath11k_mac_station_add()
4934 sta->addr, arvif->vdev_id); in ath11k_mac_station_add()
4939 sta->addr, arvif->vdev_id); in ath11k_mac_station_add()
4953 arvif->vdev_id, in ath11k_mac_station_add()
4962 ret = ath11k_dp_peer_setup(ar, arvif->vdev_id, sta->addr); in ath11k_mac_station_add()
4965 sta->addr, arvif->vdev_id, ret); in ath11k_mac_station_add()
4970 !arvif->is_started && in ath11k_mac_station_add()
4971 arvif->vdev_type != WMI_VDEV_TYPE_AP) { in ath11k_mac_station_add()
4986 ath11k_peer_delete(ar, arvif->vdev_id, sta->addr); in ath11k_mac_station_add()
4991 ath11k_mac_dec_num_stations(arvif, sta); in ath11k_mac_station_add()
5031 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_sta_state() local
5048 arsta->arvif = arvif; in ath11k_mac_op_sta_state()
5056 sta->addr, arvif->vdev_id); in ath11k_mac_op_sta_state()
5062 ath11k_dp_peer_cleanup(ar, arvif->vdev_id, sta->addr); in ath11k_mac_op_sta_state()
5065 ret = ath11k_peer_delete(ar, arvif->vdev_id, sta->addr); in ath11k_mac_op_sta_state()
5069 sta->addr, arvif->vdev_id); in ath11k_mac_op_sta_state()
5074 sta->addr, arvif->vdev_id); in ath11k_mac_op_sta_state()
5077 ath11k_mac_dec_num_stations(arvif, sta); in ath11k_mac_op_sta_state()
5080 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath11k_mac_op_sta_state()
5085 vif->addr, arvif->vdev_id); in ath11k_mac_op_sta_state()
5119 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath11k_mac_op_sta_state()
5125 if (vif->type == NL80211_IFTYPE_STATION && arvif->is_up) { in ath11k_mac_op_sta_state()
5127 arvif->vdev_id, in ath11k_mac_op_sta_state()
5132 sta->addr, arvif->vdev_id, ret); in ath11k_mac_op_sta_state()
5138 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath11k_mac_op_sta_state()
5163 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_op_sta_set_txpwr() local
5180 ret = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath11k_mac_op_sta_set_txpwr()
5213 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_op_sta_rc_update() local
5219 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath11k_mac_op_sta_rc_update()
5223 sta->addr, arvif->vdev_id); in ath11k_mac_op_sta_rc_update()
5280 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_conf_tx_uapsd() local
5284 if (arvif->vdev_type != WMI_VDEV_TYPE_STA) in ath11k_conf_tx_uapsd()
5307 arvif->u.sta.uapsd |= value; in ath11k_conf_tx_uapsd()
5309 arvif->u.sta.uapsd &= ~value; in ath11k_conf_tx_uapsd()
5311 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath11k_conf_tx_uapsd()
5313 arvif->u.sta.uapsd); in ath11k_conf_tx_uapsd()
5319 if (arvif->u.sta.uapsd) in ath11k_conf_tx_uapsd()
5324 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath11k_conf_tx_uapsd()
5340 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_op_conf_tx() local
5348 p = &arvif->wmm_params.ac_vo; in ath11k_mac_op_conf_tx()
5351 p = &arvif->wmm_params.ac_vi; in ath11k_mac_op_conf_tx()
5354 p = &arvif->wmm_params.ac_be; in ath11k_mac_op_conf_tx()
5357 p = &arvif->wmm_params.ac_bk; in ath11k_mac_op_conf_tx()
5371 ret = ath11k_wmi_send_wmm_update_cmd_tlv(ar, arvif->vdev_id, in ath11k_mac_op_conf_tx()
5372 &arvif->wmm_params); in ath11k_mac_op_conf_tx()
5454 static int ath11k_mac_set_txbf_conf(struct ath11k_vif *arvif) in ath11k_mac_set_txbf_conf() argument
5457 struct ath11k *ar = arvif->ar; in ath11k_mac_set_txbf_conf()
5487 arvif->vdev_type == WMI_VDEV_TYPE_AP) in ath11k_mac_set_txbf_conf()
5497 arvif->vdev_type == WMI_VDEV_TYPE_STA) in ath11k_mac_set_txbf_conf()
5501 return ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_set_txbf_conf()
6023 static int ath11k_mac_mgmt_tx_wmi(struct ath11k *ar, struct ath11k_vif *arvif, in ath11k_mac_mgmt_tx_wmi() argument
6065 ret = ath11k_wmi_mgmt_send(ar, arvif->vdev_id, buf_id, skb); in ath11k_mac_mgmt_tx_wmi()
6096 struct ath11k_vif *arvif; in ath11k_mgmt_over_wmi_tx_work() local
6108 arvif = ath11k_vif_to_arvif(skb_cb->vif); in ath11k_mgmt_over_wmi_tx_work()
6110 if (ar->allocated_vdev_map & (1LL << arvif->vdev_id)) { in ath11k_mgmt_over_wmi_tx_work()
6111 ret = ath11k_mac_mgmt_tx_wmi(ar, arvif, skb); in ath11k_mgmt_over_wmi_tx_work()
6114 arvif->vdev_id, ret); in ath11k_mgmt_over_wmi_tx_work()
6119 arvif->vdev_id); in ath11k_mgmt_over_wmi_tx_work()
6124 arvif->vdev_id, in ath11k_mgmt_over_wmi_tx_work()
6125 arvif->is_started); in ath11k_mgmt_over_wmi_tx_work()
6172 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_tx() local
6204 ret = ath11k_dp_tx(ar, arvif, arsta, skb); in ath11k_mac_op_tx()
6444 static int ath11k_mac_setup_vdev_params_mbssid(struct ath11k_vif *arvif, in ath11k_mac_setup_vdev_params_mbssid() argument
6447 struct ath11k *ar = arvif->ar; in ath11k_mac_setup_vdev_params_mbssid()
6452 tx_vif = arvif->vif->mbssid_tx_vif; in ath11k_mac_setup_vdev_params_mbssid()
6460 if (arvif->vif->bss_conf.nontransmitted) { in ath11k_mac_setup_vdev_params_mbssid()
6466 } else if (tx_arvif == arvif) { in ath11k_mac_setup_vdev_params_mbssid()
6472 if (arvif->vif->bss_conf.ema_ap) in ath11k_mac_setup_vdev_params_mbssid()
6478 static int ath11k_mac_setup_vdev_create_params(struct ath11k_vif *arvif, in ath11k_mac_setup_vdev_create_params() argument
6481 struct ath11k *ar = arvif->ar; in ath11k_mac_setup_vdev_create_params()
6485 params->if_id = arvif->vdev_id; in ath11k_mac_setup_vdev_create_params()
6486 params->type = arvif->vdev_type; in ath11k_mac_setup_vdev_create_params()
6487 params->subtype = arvif->vdev_subtype; in ath11k_mac_setup_vdev_create_params()
6494 ret = ath11k_mac_setup_vdev_params_mbssid(arvif, in ath11k_mac_setup_vdev_create_params()
6522 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_update_vif_offload() local
6540 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_update_vif_offload()
6544 arvif->vdev_id, ret); in ath11k_mac_op_update_vif_offload()
6556 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_update_vif_offload()
6560 arvif->vdev_id, ret); in ath11k_mac_op_update_vif_offload()
6569 struct ath11k_vif *arvif; in ath11k_mac_vif_ap_active_any() local
6575 list_for_each_entry(arvif, &ar->arvifs, list) { in ath11k_mac_vif_ap_active_any()
6576 if (arvif->is_up && arvif->vdev_type == WMI_VDEV_TYPE_AP) in ath11k_mac_vif_ap_active_any()
6683 static int ath11k_mac_vdev_delete(struct ath11k *ar, struct ath11k_vif *arvif) in ath11k_mac_vdev_delete() argument
6686 struct ieee80211_vif *vif = arvif->vif; in ath11k_mac_vdev_delete()
6693 ret = ath11k_wmi_vdev_delete(ar, arvif->vdev_id); in ath11k_mac_vdev_delete()
6696 arvif->vdev_id, ret); in ath11k_mac_vdev_delete()
6707 ar->ab->free_vdev_map |= 1LL << (arvif->vdev_id); in ath11k_mac_vdev_delete()
6708 ar->allocated_vdev_map &= ~(1LL << arvif->vdev_id); in ath11k_mac_vdev_delete()
6712 vif->addr, arvif->vdev_id); in ath11k_mac_vdev_delete()
6722 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_add_interface() local
6754 ath11k_debugfs_remove_interface(arvif); in ath11k_mac_op_add_interface()
6756 memset(arvif, 0, sizeof(*arvif)); in ath11k_mac_op_add_interface()
6758 arvif->ar = ar; in ath11k_mac_op_add_interface()
6759 arvif->vif = vif; in ath11k_mac_op_add_interface()
6761 INIT_LIST_HEAD(&arvif->list); in ath11k_mac_op_add_interface()
6762 INIT_DELAYED_WORK(&arvif->connection_loss_work, in ath11k_mac_op_add_interface()
6765 for (i = 0; i < ARRAY_SIZE(arvif->bitrate_mask.control); i++) { in ath11k_mac_op_add_interface()
6766 arvif->bitrate_mask.control[i].legacy = 0xffffffff; in ath11k_mac_op_add_interface()
6767 arvif->bitrate_mask.control[i].gi = NL80211_TXRATE_FORCE_SGI; in ath11k_mac_op_add_interface()
6768 memset(arvif->bitrate_mask.control[i].ht_mcs, 0xff, in ath11k_mac_op_add_interface()
6769 sizeof(arvif->bitrate_mask.control[i].ht_mcs)); in ath11k_mac_op_add_interface()
6770 memset(arvif->bitrate_mask.control[i].vht_mcs, 0xff, in ath11k_mac_op_add_interface()
6771 sizeof(arvif->bitrate_mask.control[i].vht_mcs)); in ath11k_mac_op_add_interface()
6772 memset(arvif->bitrate_mask.control[i].he_mcs, 0xff, in ath11k_mac_op_add_interface()
6773 sizeof(arvif->bitrate_mask.control[i].he_mcs)); in ath11k_mac_op_add_interface()
6778 arvif->vdev_id = bit; in ath11k_mac_op_add_interface()
6779 arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE; in ath11k_mac_op_add_interface()
6784 arvif->vdev_type = WMI_VDEV_TYPE_STA; in ath11k_mac_op_add_interface()
6787 arvif->vdev_subtype = WMI_VDEV_SUBTYPE_MESH_11S; in ath11k_mac_op_add_interface()
6790 arvif->vdev_type = WMI_VDEV_TYPE_AP; in ath11k_mac_op_add_interface()
6793 arvif->vdev_type = WMI_VDEV_TYPE_MONITOR; in ath11k_mac_op_add_interface()
6802 arvif->vdev_id, arvif->vdev_type, arvif->vdev_subtype, in ath11k_mac_op_add_interface()
6805 vif->cab_queue = arvif->vdev_id % (ATH11K_HW_MAX_QUEUES - 1); in ath11k_mac_op_add_interface()
6809 ret = ath11k_mac_setup_vdev_create_params(arvif, &vdev_param); in ath11k_mac_op_add_interface()
6812 arvif->vdev_id, ret); in ath11k_mac_op_add_interface()
6819 arvif->vdev_id, ret); in ath11k_mac_op_add_interface()
6825 vif->addr, arvif->vdev_id); in ath11k_mac_op_add_interface()
6826 ar->allocated_vdev_map |= 1LL << arvif->vdev_id; in ath11k_mac_op_add_interface()
6827 ab->free_vdev_map &= ~(1LL << arvif->vdev_id); in ath11k_mac_op_add_interface()
6830 list_add(&arvif->list, &ar->arvifs); in ath11k_mac_op_add_interface()
6836 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_add_interface()
6840 arvif->vdev_id, ar->cfg_tx_chainmask, nss, ret); in ath11k_mac_op_add_interface()
6844 switch (arvif->vdev_type) { in ath11k_mac_op_add_interface()
6846 peer_param.vdev_id = arvif->vdev_id; in ath11k_mac_op_add_interface()
6849 ret = ath11k_peer_create(ar, arvif, NULL, &peer_param); in ath11k_mac_op_add_interface()
6852 arvif->vdev_id, ret); in ath11k_mac_op_add_interface()
6856 ret = ath11k_mac_set_kickout(arvif); in ath11k_mac_op_add_interface()
6859 arvif->vdev_id, ret); in ath11k_mac_op_add_interface()
6868 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath11k_mac_op_add_interface()
6872 arvif->vdev_id, ret); in ath11k_mac_op_add_interface()
6878 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath11k_mac_op_add_interface()
6882 arvif->vdev_id, ret); in ath11k_mac_op_add_interface()
6888 ret = ath11k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath11k_mac_op_add_interface()
6892 arvif->vdev_id, ret); in ath11k_mac_op_add_interface()
6896 ret = ath11k_wmi_pdev_set_ps_mode(ar, arvif->vdev_id, in ath11k_mac_op_add_interface()
6900 arvif->vdev_id, ret); in ath11k_mac_op_add_interface()
6916 arvif->txpower = vif->bss_conf.txpower; in ath11k_mac_op_add_interface()
6923 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_op_add_interface()
6927 arvif->vdev_id, ret); in ath11k_mac_op_add_interface()
6930 ath11k_dp_vdev_tx_attach(ar, arvif); in ath11k_mac_op_add_interface()
6932 ath11k_debugfs_add_interface(arvif); in ath11k_mac_op_add_interface()
6947 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { in ath11k_mac_op_add_interface()
6948 fbret = ath11k_peer_delete(ar, arvif->vdev_id, vif->addr); in ath11k_mac_op_add_interface()
6951 vif->addr, arvif->vdev_id, fbret); in ath11k_mac_op_add_interface()
6957 ath11k_mac_vdev_delete(ar, arvif); in ath11k_mac_op_add_interface()
6959 list_del(&arvif->list); in ath11k_mac_op_add_interface()
6983 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_remove_interface() local
6988 cancel_delayed_work_sync(&arvif->connection_loss_work); in ath11k_mac_op_remove_interface()
6993 arvif->vdev_id); in ath11k_mac_op_remove_interface()
6995 ret = ath11k_spectral_vif_stop(arvif); in ath11k_mac_op_remove_interface()
6998 arvif->vdev_id, ret); in ath11k_mac_op_remove_interface()
7000 if (arvif->vdev_type == WMI_VDEV_TYPE_STA) in ath11k_mac_op_remove_interface()
7003 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { in ath11k_mac_op_remove_interface()
7004 ret = ath11k_peer_delete(ar, arvif->vdev_id, vif->addr); in ath11k_mac_op_remove_interface()
7007 arvif->vdev_id, ret); in ath11k_mac_op_remove_interface()
7010 ret = ath11k_mac_vdev_delete(ar, arvif); in ath11k_mac_op_remove_interface()
7013 arvif->vdev_id, ret); in ath11k_mac_op_remove_interface()
7017 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath11k_mac_op_remove_interface()
7031 list_del(&arvif->list); in ath11k_mac_op_remove_interface()
7034 ath11k_peer_cleanup(ar, arvif->vdev_id); in ath11k_mac_op_remove_interface()
7049 ath11k_debugfs_remove_interface(arvif); in ath11k_mac_op_remove_interface()
7187 ath11k_mac_vdev_start_restart(struct ath11k_vif *arvif, in ath11k_mac_vdev_start_restart() argument
7191 struct ath11k *ar = arvif->ar; in ath11k_mac_vdev_start_restart()
7201 arg.vdev_id = arvif->vdev_id; in ath11k_mac_vdev_start_restart()
7202 arg.dtim_period = arvif->dtim_period; in ath11k_mac_vdev_start_restart()
7203 arg.bcn_intval = arvif->beacon_interval; in ath11k_mac_vdev_start_restart()
7223 ret = ath11k_mac_setup_vdev_params_mbssid(arvif, in ath11k_mac_vdev_start_restart()
7230 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { in ath11k_mac_vdev_start_restart()
7231 arg.ssid = arvif->u.ap.ssid; in ath11k_mac_vdev_start_restart()
7232 arg.ssid_len = arvif->u.ap.ssid_len; in ath11k_mac_vdev_start_restart()
7233 arg.hidden_ssid = arvif->u.ap.hidden_ssid; in ath11k_mac_vdev_start_restart()
7273 arvif->vif->addr, arvif->vdev_id); in ath11k_mac_vdev_start_restart()
7282 if (arvif->vdev_type == WMI_VDEV_TYPE_AP && in ath11k_mac_vdev_start_restart()
7291 ret = ath11k_mac_set_txbf_conf(arvif); in ath11k_mac_vdev_start_restart()
7294 arvif->vdev_id, ret); in ath11k_mac_vdev_start_restart()
7299 static int ath11k_mac_vdev_stop(struct ath11k_vif *arvif) in ath11k_mac_vdev_stop() argument
7301 struct ath11k *ar = arvif->ar; in ath11k_mac_vdev_stop()
7308 ret = ath11k_wmi_vdev_stop(ar, arvif->vdev_id); in ath11k_mac_vdev_stop()
7311 arvif->vdev_id, ret); in ath11k_mac_vdev_stop()
7318 arvif->vdev_id, ret); in ath11k_mac_vdev_stop()
7326 arvif->vif->addr, arvif->vdev_id); in ath11k_mac_vdev_stop()
7331 arvif->vdev_id); in ath11k_mac_vdev_stop()
7339 static int ath11k_mac_vdev_start(struct ath11k_vif *arvif, in ath11k_mac_vdev_start() argument
7342 return ath11k_mac_vdev_start_restart(arvif, ctx, false); in ath11k_mac_vdev_start()
7345 static int ath11k_mac_vdev_restart(struct ath11k_vif *arvif, in ath11k_mac_vdev_restart() argument
7348 return ath11k_mac_vdev_start_restart(arvif, ctx, true); in ath11k_mac_vdev_restart()
7396 struct ath11k_vif *arvif, *tx_arvif = NULL; in ath11k_mac_update_vif_chan() local
7411 arvif = (void *)vifs[i].vif->drv_priv; in ath11k_mac_update_vif_chan()
7413 if (WARN_ON(!arvif->is_started)) in ath11k_mac_update_vif_chan()
7423 if (arvif->is_up) { in ath11k_mac_update_vif_chan()
7424 ret = ath11k_mac_vdev_restart(arvif, vifs[i].new_ctx); in ath11k_mac_update_vif_chan()
7427 arvif->vdev_id, ret); in ath11k_mac_update_vif_chan()
7431 ret = ath11k_mac_vdev_stop(arvif); in ath11k_mac_update_vif_chan()
7434 arvif->vdev_id, ret); in ath11k_mac_update_vif_chan()
7438 ret = ath11k_mac_vdev_start(arvif, vifs[i].new_ctx); in ath11k_mac_update_vif_chan()
7441 arvif->vdev_id, ret); in ath11k_mac_update_vif_chan()
7446 ret = ath11k_mac_setup_bcn_tmpl(arvif); in ath11k_mac_update_vif_chan()
7451 mbssid_tx_vif = arvif->vif->mbssid_tx_vif; in ath11k_mac_update_vif_chan()
7455 ret = ath11k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, in ath11k_mac_update_vif_chan()
7456 arvif->bssid, in ath11k_mac_update_vif_chan()
7458 arvif->vif->bss_conf.bssid_index, in ath11k_mac_update_vif_chan()
7459 1 << arvif->vif->bss_conf.bssid_indicator); in ath11k_mac_update_vif_chan()
7462 arvif->vdev_id, ret); in ath11k_mac_update_vif_chan()
7549 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_start_vdev_delay() local
7552 if (WARN_ON(arvif->is_started)) in ath11k_start_vdev_delay()
7555 ret = ath11k_mac_vdev_start(arvif, &arvif->chanctx); in ath11k_start_vdev_delay()
7558 arvif->vdev_id, vif->addr, in ath11k_start_vdev_delay()
7559 arvif->chanctx.def.chan->center_freq, ret); in ath11k_start_vdev_delay()
7568 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, vdev_param, in ath11k_start_vdev_delay()
7576 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath11k_start_vdev_delay()
7577 ret = ath11k_wmi_vdev_up(ar, arvif->vdev_id, 0, ar->mac_addr, in ath11k_start_vdev_delay()
7585 arvif->is_started = true; in ath11k_start_vdev_delay()
7599 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_op_assign_vif_chanctx() local
7607 ctx, arvif->vdev_id); in ath11k_mac_op_assign_vif_chanctx()
7611 arvif->vdev_type != WMI_VDEV_TYPE_AP && in ath11k_mac_op_assign_vif_chanctx()
7612 arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && in ath11k_mac_op_assign_vif_chanctx()
7613 !ath11k_peer_find_by_vdev_id(ab, arvif->vdev_id)) { in ath11k_mac_op_assign_vif_chanctx()
7614 memcpy(&arvif->chanctx, ctx, sizeof(*ctx)); in ath11k_mac_op_assign_vif_chanctx()
7619 if (WARN_ON(arvif->is_started)) { in ath11k_mac_op_assign_vif_chanctx()
7625 arvif->vdev_type != WMI_VDEV_TYPE_AP && in ath11k_mac_op_assign_vif_chanctx()
7626 arvif->vdev_type != WMI_VDEV_TYPE_MONITOR) { in ath11k_mac_op_assign_vif_chanctx()
7627 param.vdev_id = arvif->vdev_id; in ath11k_mac_op_assign_vif_chanctx()
7631 ret = ath11k_peer_create(ar, arvif, NULL, ¶m); in ath11k_mac_op_assign_vif_chanctx()
7639 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath11k_mac_op_assign_vif_chanctx()
7647 arvif->is_started = true; in ath11k_mac_op_assign_vif_chanctx()
7651 ret = ath11k_mac_vdev_start(arvif, ctx); in ath11k_mac_op_assign_vif_chanctx()
7654 arvif->vdev_id, vif->addr, in ath11k_mac_op_assign_vif_chanctx()
7659 arvif->is_started = true; in ath11k_mac_op_assign_vif_chanctx()
7661 if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && in ath11k_mac_op_assign_vif_chanctx()
7689 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_op_unassign_vif_chanctx() local
7697 ctx, arvif->vdev_id); in ath11k_mac_op_unassign_vif_chanctx()
7699 WARN_ON(!arvif->is_started); in ath11k_mac_op_unassign_vif_chanctx()
7702 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath11k_mac_op_unassign_vif_chanctx()
7707 ath11k_peer_delete(ar, arvif->vdev_id, ar->mac_addr); in ath11k_mac_op_unassign_vif_chanctx()
7710 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath11k_mac_op_unassign_vif_chanctx()
7719 arvif->is_started = false; in ath11k_mac_op_unassign_vif_chanctx()
7724 ret = ath11k_mac_vdev_stop(arvif); in ath11k_mac_op_unassign_vif_chanctx()
7727 arvif->vdev_id, ret); in ath11k_mac_op_unassign_vif_chanctx()
7729 arvif->is_started = false; in ath11k_mac_op_unassign_vif_chanctx()
7732 arvif->vdev_type == WMI_VDEV_TYPE_STA) { in ath11k_mac_op_unassign_vif_chanctx()
7733 ret = ath11k_peer_delete(ar, arvif->vdev_id, arvif->bssid); in ath11k_mac_op_unassign_vif_chanctx()
7737 arvif->bssid, arvif->vdev_id, ret); in ath11k_mac_op_unassign_vif_chanctx()
7741 arvif->bssid, arvif->vdev_id); in ath11k_mac_op_unassign_vif_chanctx()
7745 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) in ath11k_mac_op_unassign_vif_chanctx()
7746 ath11k_wmi_vdev_down(ar, arvif->vdev_id); in ath11k_mac_op_unassign_vif_chanctx()
7748 if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && in ath11k_mac_op_unassign_vif_chanctx()
7758 if (arvif->vdev_type == WMI_VDEV_TYPE_STA) in ath11k_mac_op_unassign_vif_chanctx()
7759 ath11k_mac_11d_scan_start(ar, arvif->vdev_id); in ath11k_mac_op_unassign_vif_chanctx()
7787 struct ath11k_vif *arvif; in ath11k_set_vdev_param_to_all_vifs() local
7791 list_for_each_entry(arvif, &ar->arvifs, list) { in ath11k_set_vdev_param_to_all_vifs()
7793 param, arvif->vdev_id, value); in ath11k_set_vdev_param_to_all_vifs()
7795 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_set_vdev_param_to_all_vifs()
7799 param, arvif->vdev_id, ret); in ath11k_set_vdev_param_to_all_vifs()
8010 ath11k_mac_set_fixed_rate_gi_ltf(struct ath11k_vif *arvif, u8 he_gi, u8 he_ltf) in ath11k_mac_set_fixed_rate_gi_ltf() argument
8012 struct ath11k *ar = arvif->ar; in ath11k_mac_set_fixed_rate_gi_ltf()
8019 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_set_fixed_rate_gi_ltf()
8030 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_set_fixed_rate_gi_ltf()
8042 ath11k_mac_set_auto_rate_gi_ltf(struct ath11k_vif *arvif, u16 he_gi, u8 he_ltf) in ath11k_mac_set_auto_rate_gi_ltf() argument
8044 struct ath11k *ar = arvif->ar; in ath11k_mac_set_auto_rate_gi_ltf()
8083 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_set_auto_rate_gi_ltf()
8096 static int ath11k_mac_set_rate_params(struct ath11k_vif *arvif, in ath11k_mac_set_rate_params() argument
8100 struct ath11k *ar = arvif->ar; in ath11k_mac_set_rate_params()
8108 arvif->vdev_id, rate, nss, sgi, ldpc, he_gi, in ath11k_mac_set_rate_params()
8111 if (!arvif->vif->bss_conf.he_support) { in ath11k_mac_set_rate_params()
8113 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_set_rate_params()
8123 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_set_rate_params()
8132 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_set_rate_params()
8140 if (arvif->vif->bss_conf.he_support) { in ath11k_mac_set_rate_params()
8142 ret = ath11k_mac_set_fixed_rate_gi_ltf(arvif, he_gi, in ath11k_mac_set_rate_params()
8150 ret = ath11k_mac_set_auto_rate_gi_ltf(arvif, he_gi, in ath11k_mac_set_rate_params()
8160 ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath11k_mac_set_rate_params()
8225 struct ath11k_vif *arvif = data; in ath11k_mac_set_bitrate_mask_iter() local
8227 struct ath11k *ar = arvif->ar; in ath11k_mac_set_bitrate_mask_iter()
8239 struct ath11k_vif *arvif = data; in ath11k_mac_disable_peer_fixed_rate() local
8240 struct ath11k *ar = arvif->ar; in ath11k_mac_disable_peer_fixed_rate()
8244 arvif->vdev_id, in ath11k_mac_disable_peer_fixed_rate()
8310 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_op_set_bitrate_mask() local
8313 struct ath11k *ar = arvif->ar; in ath11k_mac_op_set_bitrate_mask()
8359 arvif->vdev_id, ret); in ath11k_mac_op_set_bitrate_mask()
8364 arvif); in ath11k_mac_op_set_bitrate_mask()
8370 arvif->bitrate_mask = *mask; in ath11k_mac_op_set_bitrate_mask()
8373 arvif); in ath11k_mac_op_set_bitrate_mask()
8435 arvif); in ath11k_mac_op_set_bitrate_mask()
8437 arvif->bitrate_mask = *mask; in ath11k_mac_op_set_bitrate_mask()
8440 arvif); in ath11k_mac_op_set_bitrate_mask()
8447 ret = ath11k_mac_set_rate_params(arvif, rate, nss, sgi, ldpc, he_gi, in ath11k_mac_op_set_bitrate_mask()
8451 arvif->vdev_id, ret); in ath11k_mac_op_set_bitrate_mask()
8466 struct ath11k_vif *arvif; in ath11k_mac_op_reconfig_complete() local
8503 list_for_each_entry(arvif, &ar->arvifs, list) { in ath11k_mac_op_reconfig_complete()
8504 if (arvif->is_up && arvif->vdev_type == WMI_VDEV_TYPE_STA) in ath11k_mac_op_reconfig_complete()
8505 ieee80211_hw_restart_disconnect(arvif->vif); in ath11k_mac_op_reconfig_complete()
8601 struct ath11k *ar = arsta->arvif->ar; in ath11k_mac_put_chain_rssi()
8631 struct ath11k *ar = arsta->arvif->ar; in ath11k_mac_op_sta_statistics()
8660 arsta->arvif->vdev_type == WMI_VDEV_TYPE_STA && in ath11k_mac_op_sta_statistics()
8669 arsta->arvif->vdev_type == WMI_VDEV_TYPE_STA && in ath11k_mac_op_sta_statistics()
8717 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_ipv6_changed() local
8725 offload = &arvif->arp_ns_offload; in ath11k_mac_op_ipv6_changed()
8791 struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); in ath11k_mac_op_set_rekey_data() local
8792 struct ath11k_rekey_data *rekey_data = &arvif->rekey_data; in ath11k_mac_op_set_rekey_data()
8795 arvif->vdev_id); in ath11k_mac_op_set_rekey_data()
8807 arvif->rekey_data.enable_offload = true; in ath11k_mac_op_set_rekey_data()
8907 struct ath11k_vif *arvif = (void *)vif->drv_priv; in ath11k_mac_op_remain_on_channel() local
8922 ar->scan.vdev_id = arvif->vdev_id; in ath11k_mac_op_remain_on_channel()
8950 arg.vdev_id = arvif->vdev_id; in ath11k_mac_op_remain_on_channel()
9801 int ath11k_mac_vif_set_keepalive(struct ath11k_vif *arvif, in ath11k_mac_vif_set_keepalive() argument
9805 struct ath11k *ar = arvif->ar; in ath11k_mac_vif_set_keepalive()
9811 if (arvif->vdev_type != WMI_VDEV_TYPE_STA) in ath11k_mac_vif_set_keepalive()
9817 arg.vdev_id = arvif->vdev_id; in ath11k_mac_vif_set_keepalive()
9825 arvif->vdev_id, ret); in ath11k_mac_vif_set_keepalive()