Lines Matching refs:arvif

526 	struct ath12k_vif *arvif = (void *)vif->drv_priv;  in ath12k_get_arvif_iter()  local
528 if (arvif->vdev_id == arvif_iter->vdev_id) in ath12k_get_arvif_iter()
529 arvif_iter->arvif = arvif; in ath12k_get_arvif_iter()
544 if (!arvif_iter.arvif) { in ath12k_mac_get_arvif()
549 return arvif_iter.arvif; in ath12k_mac_get_arvif()
557 struct ath12k_vif *arvif; in ath12k_mac_get_arvif_by_vdev_id() local
562 arvif = ath12k_mac_get_arvif(pdev->ar, vdev_id); in ath12k_mac_get_arvif_by_vdev_id()
563 if (arvif) in ath12k_mac_get_arvif_by_vdev_id()
564 return arvif; in ath12k_mac_get_arvif_by_vdev_id()
631 struct ath12k_vif *arvif; in ath12k_mac_txpower_recalc() local
637 list_for_each_entry(arvif, &ar->arvifs, list) { in ath12k_mac_txpower_recalc()
638 if (arvif->txpower <= 0) in ath12k_mac_txpower_recalc()
642 txpower = arvif->txpower; in ath12k_mac_txpower_recalc()
644 txpower = min(txpower, arvif->txpower); in ath12k_mac_txpower_recalc()
685 static int ath12k_recalc_rtscts_prot(struct ath12k_vif *arvif) in ath12k_recalc_rtscts_prot() argument
687 struct ath12k *ar = arvif->ar; in ath12k_recalc_rtscts_prot()
701 if (arvif->num_legacy_stations > 0) in ath12k_recalc_rtscts_prot()
707 if (arvif->rtscts_prot_mode == rts_cts) in ath12k_recalc_rtscts_prot()
710 arvif->rtscts_prot_mode = rts_cts; in ath12k_recalc_rtscts_prot()
713 arvif->vdev_id, rts_cts); in ath12k_recalc_rtscts_prot()
715 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_recalc_rtscts_prot()
719 arvif->vdev_id, ret); in ath12k_recalc_rtscts_prot()
724 static int ath12k_mac_set_kickout(struct ath12k_vif *arvif) in ath12k_mac_set_kickout() argument
726 struct ath12k *ar = arvif->ar; in ath12k_mac_set_kickout()
735 arvif->vdev_id, ret); in ath12k_mac_set_kickout()
740 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath12k_mac_set_kickout()
744 arvif->vdev_id, ret); in ath12k_mac_set_kickout()
749 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath12k_mac_set_kickout()
753 arvif->vdev_id, ret); in ath12k_mac_set_kickout()
758 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath12k_mac_set_kickout()
762 arvif->vdev_id, ret); in ath12k_mac_set_kickout()
1120 static int ath12k_mac_setup_bcn_tmpl(struct ath12k_vif *arvif) in ath12k_mac_setup_bcn_tmpl() argument
1122 struct ath12k *ar = arvif->ar; in ath12k_mac_setup_bcn_tmpl()
1125 struct ieee80211_vif *vif = arvif->vif; in ath12k_mac_setup_bcn_tmpl()
1132 if (arvif->vdev_type != WMI_VDEV_TYPE_AP) in ath12k_mac_setup_bcn_tmpl()
1145 arvif->rsnie_present = true; in ath12k_mac_setup_bcn_tmpl()
1150 arvif->wpaie_present = true; in ath12k_mac_setup_bcn_tmpl()
1152 ret = ath12k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn); in ath12k_mac_setup_bcn_tmpl()
1163 static void ath12k_control_beaconing(struct ath12k_vif *arvif, in ath12k_control_beaconing() argument
1166 struct ath12k *ar = arvif->ar; in ath12k_control_beaconing()
1169 lockdep_assert_held(&arvif->ar->conf_mutex); in ath12k_control_beaconing()
1172 ret = ath12k_wmi_vdev_down(ar, arvif->vdev_id); in ath12k_control_beaconing()
1175 arvif->vdev_id, ret); in ath12k_control_beaconing()
1177 arvif->is_up = false; in ath12k_control_beaconing()
1182 ret = ath12k_mac_setup_bcn_tmpl(arvif); in ath12k_control_beaconing()
1189 arvif->aid = 0; in ath12k_control_beaconing()
1191 ether_addr_copy(arvif->bssid, info->bssid); in ath12k_control_beaconing()
1193 ret = ath12k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, in ath12k_control_beaconing()
1194 arvif->bssid); in ath12k_control_beaconing()
1197 arvif->vdev_id, ret); in ath12k_control_beaconing()
1201 arvif->is_up = true; in ath12k_control_beaconing()
1203 ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "mac vdev %d up\n", arvif->vdev_id); in ath12k_control_beaconing()
1211 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_basic() local
1222 arg->vdev_id = arvif->vdev_id; in ath12k_peer_assoc_h_basic()
1239 struct ath12k_vif *arvif = (struct ath12k_vif *)vif->drv_priv; in ath12k_peer_assoc_h_crypto() local
1251 if (arvif->rsnie_present || arvif->wpaie_present) { in ath12k_peer_assoc_h_crypto()
1253 if (arvif->wpaie_present) in ath12k_peer_assoc_h_crypto()
1297 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_rates() local
1315 ratemask &= arvif->bitrate_mask.control[band].legacy; in ath12k_peer_assoc_h_rates()
1360 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_ht() local
1377 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs; in ath12k_peer_assoc_h_ht()
1401 if (arvif->bitrate_mask.control[band].gi != NL80211_TXRATE_FORCE_LGI) { in ath12k_peer_assoc_h_ht()
1521 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_vht() local
1537 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs; in ath12k_peer_assoc_h_vht()
1796 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_qos() local
1798 switch (arvif->vdev_type) { in ath12k_peer_assoc_h_qos()
1828 struct ath12k_vif *arvif, in ath12k_peer_assoc_qos_ap() argument
1838 arg.vdev_id = arvif->vdev_id; in ath12k_peer_assoc_qos_ap()
1890 arg.param, arvif->vdev_id, ret); in ath12k_peer_assoc_qos_ap()
1994 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_phymode() local
2005 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs; in ath12k_peer_assoc_h_phymode()
2006 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs; in ath12k_peer_assoc_h_phymode()
2143 struct ath12k_vif *arvif = (struct ath12k_vif *)vif->drv_priv; in ath12k_peer_assoc_h_eht() local
2214 arg->punct_bitmap = ~arvif->punct_bitmap; in ath12k_peer_assoc_h_eht()
2244 static int ath12k_setup_peer_smps(struct ath12k *ar, struct ath12k_vif *arvif, in ath12k_setup_peer_smps() argument
2259 return ath12k_wmi_set_peer_param(ar, addr, arvif->vdev_id, in ath12k_setup_peer_smps()
2269 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_bss_assoc() local
2279 arvif->vdev_id, arvif->bssid, arvif->aid); in ath12k_bss_assoc()
2286 bss_conf->bssid, arvif->vdev_id); in ath12k_bss_assoc()
2298 bss_conf->bssid, arvif->vdev_id, ret); in ath12k_bss_assoc()
2304 bss_conf->bssid, arvif->vdev_id); in ath12k_bss_assoc()
2308 ret = ath12k_setup_peer_smps(ar, arvif, bss_conf->bssid, in ath12k_bss_assoc()
2312 arvif->vdev_id, ret); in ath12k_bss_assoc()
2316 WARN_ON(arvif->is_up); in ath12k_bss_assoc()
2318 arvif->aid = vif->cfg.aid; in ath12k_bss_assoc()
2319 ether_addr_copy(arvif->bssid, bss_conf->bssid); in ath12k_bss_assoc()
2321 ret = ath12k_wmi_vdev_up(ar, arvif->vdev_id, arvif->aid, arvif->bssid); in ath12k_bss_assoc()
2324 arvif->vdev_id, ret); in ath12k_bss_assoc()
2328 arvif->is_up = true; in ath12k_bss_assoc()
2332 arvif->vdev_id, bss_conf->bssid, vif->cfg.aid); in ath12k_bss_assoc()
2336 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, arvif->bssid); in ath12k_bss_assoc()
2344 ret = ath12k_wmi_set_peer_param(ar, arvif->bssid, in ath12k_bss_assoc()
2345 arvif->vdev_id, in ath12k_bss_assoc()
2352 ret = ath12k_wmi_send_obss_spr_cmd(ar, arvif->vdev_id, in ath12k_bss_assoc()
2356 arvif->vdev_id, ret); in ath12k_bss_assoc()
2363 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_bss_disassoc() local
2369 arvif->vdev_id, arvif->bssid); in ath12k_bss_disassoc()
2371 ret = ath12k_wmi_vdev_down(ar, arvif->vdev_id); in ath12k_bss_disassoc()
2374 arvif->vdev_id, ret); in ath12k_bss_disassoc()
2376 arvif->is_up = false; in ath12k_bss_disassoc()
2410 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_recalculate_mgmt_rate() local
2431 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, vdev_param, in ath12k_recalculate_mgmt_rate()
2437 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, vdev_param, in ath12k_recalculate_mgmt_rate()
2443 static int ath12k_mac_fils_discovery(struct ath12k_vif *arvif, in ath12k_mac_fils_discovery() argument
2446 struct ath12k *ar = arvif->ar; in ath12k_mac_fils_discovery()
2455 tmpl = ieee80211_get_fils_discovery_tmpl(ar->hw, arvif->vif); in ath12k_mac_fils_discovery()
2457 ret = ath12k_wmi_fils_discovery_tmpl(ar, arvif->vdev_id, in ath12k_mac_fils_discovery()
2464 arvif->vif); in ath12k_mac_fils_discovery()
2466 ret = ath12k_wmi_probe_resp_tmpl(ar, arvif->vdev_id, in ath12k_mac_fils_discovery()
2469 return ath12k_wmi_fils_discovery(ar, arvif->vdev_id, 0, false); in ath12k_mac_fils_discovery()
2475 arvif->vdev_id, (unsol_bcast_probe_resp_enabled ? in ath12k_mac_fils_discovery()
2483 ret = ath12k_wmi_fils_discovery(ar, arvif->vdev_id, interval, in ath12k_mac_fils_discovery()
2495 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_bss_info_changed() local
2511 arvif->beacon_interval = info->beacon_int; in ath12k_mac_op_bss_info_changed()
2514 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2516 arvif->beacon_interval); in ath12k_mac_op_bss_info_changed()
2519 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2523 arvif->beacon_interval, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2533 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2537 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2539 ret = ath12k_mac_setup_bcn_tmpl(arvif); in ath12k_mac_op_bss_info_changed()
2546 arvif->dtim_period = info->dtim_period; in ath12k_mac_op_bss_info_changed()
2549 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2551 arvif->dtim_period); in ath12k_mac_op_bss_info_changed()
2555 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2559 arvif->dtim_period, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2564 arvif->u.ap.ssid_len = vif->cfg.ssid_len; in ath12k_mac_op_bss_info_changed()
2566 memcpy(arvif->u.ap.ssid, vif->cfg.ssid, vif->cfg.ssid_len); in ath12k_mac_op_bss_info_changed()
2567 arvif->u.ap.hidden_ssid = info->hidden_ssid; in ath12k_mac_op_bss_info_changed()
2571 ether_addr_copy(arvif->bssid, info->bssid); in ath12k_mac_op_bss_info_changed()
2574 ath12k_control_beaconing(arvif, info); in ath12k_mac_op_bss_info_changed()
2576 if (arvif->is_up && vif->bss_conf.he_support && in ath12k_mac_op_bss_info_changed()
2579 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2585 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2589 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2593 param_value, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2597 param_value, arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2607 if (arvif->is_started) { in ath12k_mac_op_bss_info_changed()
2608 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2612 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2615 cts_prot, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2631 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2635 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2639 slottime, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2651 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2655 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2659 preamble, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2671 arvif->vdev_id, info->txpower); in ath12k_mac_op_bss_info_changed()
2673 arvif->txpower = info->txpower; in ath12k_mac_op_bss_info_changed()
2678 !ath12k_mac_vif_chan(arvif->vif, &def)) { in ath12k_mac_op_bss_info_changed()
2702 arvif->vdev_id, rate); in ath12k_mac_op_bss_info_changed()
2705 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2710 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2713 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2718 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2722 !ath12k_mac_vif_chan(arvif->vif, &def)) in ath12k_mac_op_bss_info_changed()
2733 ath12k_wmi_send_obss_spr_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2739 arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2745 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2748 arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2752 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2754 arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2760 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2766 ath12k_mac_fils_discovery(arvif, info); in ath12k_mac_op_bss_info_changed()
2769 arvif->punct_bitmap = info->eht_puncturing; in ath12k_mac_op_bss_info_changed()
2938 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_hw_scan() local
2953 ar->scan.vdev_id = arvif->vdev_id; in ath12k_mac_op_hw_scan()
2968 arg.vdev_id = arvif->vdev_id; in ath12k_mac_op_hw_scan()
3037 static int ath12k_install_key(struct ath12k_vif *arvif, in ath12k_install_key() argument
3043 struct ath12k *ar = arvif->ar; in ath12k_install_key()
3045 .vdev_id = arvif->vdev_id, in ath12k_install_key()
3053 lockdep_assert_held(&arvif->ar->conf_mutex); in ath12k_install_key()
3096 ret = ath12k_wmi_vdev_install_key(arvif->ar, &arg); in ath12k_install_key()
3104 if (ether_addr_equal(macaddr, arvif->vif->addr)) in ath12k_install_key()
3105 arvif->key_cipher = key->cipher; in ath12k_install_key()
3110 static int ath12k_clear_peer_keys(struct ath12k_vif *arvif, in ath12k_clear_peer_keys() argument
3113 struct ath12k *ar = arvif->ar; in ath12k_clear_peer_keys()
3124 peer = ath12k_peer_find(ab, arvif->vdev_id, addr); in ath12k_clear_peer_keys()
3135 ret = ath12k_install_key(arvif, peer->keys[i], in ath12k_clear_peer_keys()
3158 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_set_key() local
3182 else if (arvif->vdev_type == WMI_VDEV_TYPE_STA) in ath12k_mac_op_set_key()
3193 peer = ath12k_peer_find(ab, arvif->vdev_id, peer_addr); in ath12k_mac_op_set_key()
3215 ret = ath12k_install_key(arvif, key, cmd, peer_addr, flags); in ath12k_mac_op_set_key()
3221 ret = ath12k_dp_rx_peer_pn_replay_config(arvif, peer_addr, cmd, key); in ath12k_mac_op_set_key()
3228 peer = ath12k_peer_find(ab, arvif->vdev_id, peer_addr); in ath12k_mac_op_set_key()
3290 ath12k_mac_set_peer_vht_fixed_rate(struct ath12k_vif *arvif, in ath12k_mac_set_peer_vht_fixed_rate() argument
3295 struct ath12k *ar = arvif->ar; in ath12k_mac_set_peer_vht_fixed_rate()
3324 arvif->vdev_id, in ath12k_mac_set_peer_vht_fixed_rate()
3340 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_station_assoc() local
3354 mask = &arvif->bitrate_mask; in ath12k_station_assoc()
3361 sta->addr, arvif->vdev_id, ret); in ath12k_station_assoc()
3367 sta->addr, arvif->vdev_id); in ath12k_station_assoc()
3379 ret = ath12k_mac_set_peer_vht_fixed_rate(arvif, sta, mask, in ath12k_station_assoc()
3391 ret = ath12k_setup_peer_smps(ar, arvif, sta->addr, in ath12k_station_assoc()
3395 arvif->vdev_id, ret); in ath12k_station_assoc()
3400 arvif->num_legacy_stations++; in ath12k_station_assoc()
3401 ret = ath12k_recalc_rtscts_prot(arvif); in ath12k_station_assoc()
3407 ret = ath12k_peer_assoc_qos_ap(ar, arvif, sta); in ath12k_station_assoc()
3410 sta->addr, arvif->vdev_id, ret); in ath12k_station_assoc()
3422 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_station_disassoc() local
3428 arvif->num_legacy_stations--; in ath12k_station_disassoc()
3429 ret = ath12k_recalc_rtscts_prot(arvif); in ath12k_station_disassoc()
3434 ret = ath12k_clear_peer_keys(arvif, sta->addr); in ath12k_station_disassoc()
3437 arvif->vdev_id, ret); in ath12k_station_disassoc()
3446 struct ath12k_vif *arvif; in ath12k_sta_rc_update_wk() local
3461 arvif = arsta->arvif; in ath12k_sta_rc_update_wk()
3462 ar = arvif->ar; in ath12k_sta_rc_update_wk()
3464 if (WARN_ON(ath12k_mac_vif_chan(arvif->vif, &def))) in ath12k_sta_rc_update_wk()
3468 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs; in ath12k_sta_rc_update_wk()
3469 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs; in ath12k_sta_rc_update_wk()
3490 ath12k_peer_assoc_h_phymode(ar, arvif->vif, sta, &peer_arg); in ath12k_sta_rc_update_wk()
3502 arvif->vdev_id, WMI_PEER_PHYMODE, in ath12k_sta_rc_update_wk()
3510 arvif->vdev_id, WMI_PEER_CHWIDTH, in ath12k_sta_rc_update_wk()
3523 arvif->vdev_id, WMI_PEER_CHWIDTH, in ath12k_sta_rc_update_wk()
3531 arvif->vdev_id, WMI_PEER_PHYMODE, in ath12k_sta_rc_update_wk()
3543 err = ath12k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath12k_sta_rc_update_wk()
3554 err = ath12k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath12k_sta_rc_update_wk()
3562 mask = &arvif->bitrate_mask; in ath12k_sta_rc_update_wk()
3578 ath12k_mac_set_peer_vht_fixed_rate(arvif, sta, mask, in ath12k_sta_rc_update_wk()
3585 ath12k_peer_assoc_prepare(ar, arvif->vif, sta, in ath12k_sta_rc_update_wk()
3591 sta->addr, arvif->vdev_id, err); in ath12k_sta_rc_update_wk()
3595 sta->addr, arvif->vdev_id); in ath12k_sta_rc_update_wk()
3602 static int ath12k_mac_inc_num_stations(struct ath12k_vif *arvif, in ath12k_mac_inc_num_stations() argument
3605 struct ath12k *ar = arvif->ar; in ath12k_mac_inc_num_stations()
3609 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls) in ath12k_mac_inc_num_stations()
3620 static void ath12k_mac_dec_num_stations(struct ath12k_vif *arvif, in ath12k_mac_dec_num_stations() argument
3623 struct ath12k *ar = arvif->ar; in ath12k_mac_dec_num_stations()
3627 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls) in ath12k_mac_dec_num_stations()
3638 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_station_add() local
3645 ret = ath12k_mac_inc_num_stations(arvif, sta); in ath12k_mac_station_add()
3658 peer_param.vdev_id = arvif->vdev_id; in ath12k_mac_station_add()
3662 ret = ath12k_peer_create(ar, arvif, sta, &peer_param); in ath12k_mac_station_add()
3665 sta->addr, arvif->vdev_id); in ath12k_mac_station_add()
3670 sta->addr, arvif->vdev_id); in ath12k_mac_station_add()
3674 arvif->vdev_id, in ath12k_mac_station_add()
3683 ret = ath12k_dp_peer_setup(ar, arvif->vdev_id, sta->addr); in ath12k_mac_station_add()
3686 sta->addr, arvif->vdev_id, ret); in ath12k_mac_station_add()
3691 !arvif->is_started && in ath12k_mac_station_add()
3692 arvif->vdev_type != WMI_VDEV_TYPE_AP) { in ath12k_mac_station_add()
3703 ath12k_peer_delete(ar, arvif->vdev_id, sta->addr); in ath12k_mac_station_add()
3705 ath12k_mac_dec_num_stations(arvif, sta); in ath12k_mac_station_add()
3745 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_sta_state() local
3760 arsta->arvif = arvif; in ath12k_mac_op_sta_state()
3766 sta->addr, arvif->vdev_id); in ath12k_mac_op_sta_state()
3769 ath12k_dp_peer_cleanup(ar, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3771 ret = ath12k_peer_delete(ar, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3774 sta->addr, arvif->vdev_id); in ath12k_mac_op_sta_state()
3777 sta->addr, arvif->vdev_id); in ath12k_mac_op_sta_state()
3779 ath12k_mac_dec_num_stations(arvif, sta); in ath12k_mac_op_sta_state()
3781 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3784 vif->addr, arvif->vdev_id); in ath12k_mac_op_sta_state()
3814 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3820 if (vif->type == NL80211_IFTYPE_STATION && arvif->is_up) { in ath12k_mac_op_sta_state()
3822 arvif->vdev_id, in ath12k_mac_op_sta_state()
3827 sta->addr, arvif->vdev_id, ret); in ath12k_mac_op_sta_state()
3833 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3858 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_sta_set_txpwr() local
3875 ret = ath12k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath12k_mac_op_sta_set_txpwr()
3895 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_sta_rc_update() local
3901 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_rc_update()
3905 sta->addr, arvif->vdev_id); in ath12k_mac_op_sta_rc_update()
3961 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_conf_tx_uapsd() local
3965 if (arvif->vdev_type != WMI_VDEV_TYPE_STA) in ath12k_conf_tx_uapsd()
3988 arvif->u.sta.uapsd |= value; in ath12k_conf_tx_uapsd()
3990 arvif->u.sta.uapsd &= ~value; in ath12k_conf_tx_uapsd()
3992 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_conf_tx_uapsd()
3994 arvif->u.sta.uapsd); in ath12k_conf_tx_uapsd()
4000 if (arvif->u.sta.uapsd) in ath12k_conf_tx_uapsd()
4005 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_conf_tx_uapsd()
4021 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_conf_tx() local
4029 p = &arvif->wmm_params.ac_vo; in ath12k_mac_op_conf_tx()
4032 p = &arvif->wmm_params.ac_vi; in ath12k_mac_op_conf_tx()
4035 p = &arvif->wmm_params.ac_be; in ath12k_mac_op_conf_tx()
4038 p = &arvif->wmm_params.ac_bk; in ath12k_mac_op_conf_tx()
4052 ret = ath12k_wmi_send_wmm_update_cmd(ar, arvif->vdev_id, in ath12k_mac_op_conf_tx()
4053 &arvif->wmm_params); in ath12k_mac_op_conf_tx()
4135 static int ath12k_mac_set_txbf_conf(struct ath12k_vif *arvif) in ath12k_mac_set_txbf_conf() argument
4138 struct ath12k *ar = arvif->ar; in ath12k_mac_set_txbf_conf()
4166 arvif->vdev_type == WMI_VDEV_TYPE_AP) in ath12k_mac_set_txbf_conf()
4174 arvif->vdev_type == WMI_VDEV_TYPE_STA) in ath12k_mac_set_txbf_conf()
4178 return ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_txbf_conf()
4777 static int ath12k_mac_mgmt_tx_wmi(struct ath12k *ar, struct ath12k_vif *arvif, in ath12k_mac_mgmt_tx_wmi() argument
4814 ret = ath12k_wmi_mgmt_send(ar, arvif->vdev_id, buf_id, skb); in ath12k_mac_mgmt_tx_wmi()
4845 struct ath12k_vif *arvif; in ath12k_mgmt_over_wmi_tx_work() local
4857 arvif = ath12k_vif_to_arvif(skb_cb->vif); in ath12k_mgmt_over_wmi_tx_work()
4858 if (ar->allocated_vdev_map & (1LL << arvif->vdev_id) && in ath12k_mgmt_over_wmi_tx_work()
4859 arvif->is_started) { in ath12k_mgmt_over_wmi_tx_work()
4860 ret = ath12k_mac_mgmt_tx_wmi(ar, arvif, skb); in ath12k_mgmt_over_wmi_tx_work()
4863 arvif->vdev_id, ret); in ath12k_mgmt_over_wmi_tx_work()
4869 arvif->vdev_id, in ath12k_mgmt_over_wmi_tx_work()
4870 arvif->is_started); in ath12k_mgmt_over_wmi_tx_work()
4916 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_tx() local
4944 ret = ath12k_dp_tx(ar, arvif, skb); in ath12k_mac_op_tx()
5147 ath12k_mac_get_vdev_stats_id(struct ath12k_vif *arvif) in ath12k_mac_get_vdev_stats_id() argument
5149 struct ath12k_base *ab = arvif->ar->ab; in ath12k_mac_get_vdev_stats_id()
5165 arvif->vdev_stats_id = vdev_stats_id; in ath12k_mac_get_vdev_stats_id()
5169 static void ath12k_mac_setup_vdev_create_arg(struct ath12k_vif *arvif, in ath12k_mac_setup_vdev_create_arg() argument
5172 struct ath12k *ar = arvif->ar; in ath12k_mac_setup_vdev_create_arg()
5175 arg->if_id = arvif->vdev_id; in ath12k_mac_setup_vdev_create_arg()
5176 arg->type = arvif->vdev_type; in ath12k_mac_setup_vdev_create_arg()
5177 arg->subtype = arvif->vdev_subtype; in ath12k_mac_setup_vdev_create_arg()
5194 arg->if_stats_id = ath12k_mac_get_vdev_stats_id(arvif); in ath12k_mac_setup_vdev_create_arg()
5232 struct ath12k_vif *arvif) in ath12k_set_he_mu_sounding_mode() argument
5239 param_value = ath12k_mac_prepare_he_mode(ar->pdev, arvif->vif->type); in ath12k_set_he_mu_sounding_mode()
5240 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_set_he_mu_sounding_mode()
5244 arvif->vdev_id, ret, param_value); in ath12k_set_he_mu_sounding_mode()
5252 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_set_he_mu_sounding_mode()
5256 arvif->vdev_id, ret); in ath12k_set_he_mu_sounding_mode()
5267 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_update_vif_offload() local
5278 arvif->tx_encap_type = ATH12K_HW_TXRX_ETHERNET; in ath12k_mac_op_update_vif_offload()
5280 arvif->tx_encap_type = ATH12K_HW_TXRX_RAW; in ath12k_mac_op_update_vif_offload()
5282 arvif->tx_encap_type = ATH12K_HW_TXRX_NATIVE_WIFI; in ath12k_mac_op_update_vif_offload()
5284 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_update_vif_offload()
5285 param_id, arvif->tx_encap_type); in ath12k_mac_op_update_vif_offload()
5288 arvif->vdev_id, ret); in ath12k_mac_op_update_vif_offload()
5300 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_update_vif_offload()
5304 arvif->vdev_id, ret); in ath12k_mac_op_update_vif_offload()
5314 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_add_interface() local
5341 memset(arvif, 0, sizeof(*arvif)); in ath12k_mac_op_add_interface()
5343 arvif->ar = ar; in ath12k_mac_op_add_interface()
5344 arvif->vif = vif; in ath12k_mac_op_add_interface()
5346 INIT_LIST_HEAD(&arvif->list); in ath12k_mac_op_add_interface()
5352 for (i = 0; i < ARRAY_SIZE(arvif->bitrate_mask.control); i++) { in ath12k_mac_op_add_interface()
5353 arvif->bitrate_mask.control[i].legacy = 0xffffffff; in ath12k_mac_op_add_interface()
5354 memset(arvif->bitrate_mask.control[i].ht_mcs, 0xff, in ath12k_mac_op_add_interface()
5355 sizeof(arvif->bitrate_mask.control[i].ht_mcs)); in ath12k_mac_op_add_interface()
5356 memset(arvif->bitrate_mask.control[i].vht_mcs, 0xff, in ath12k_mac_op_add_interface()
5357 sizeof(arvif->bitrate_mask.control[i].vht_mcs)); in ath12k_mac_op_add_interface()
5362 arvif->vdev_id = bit; in ath12k_mac_op_add_interface()
5363 arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE; in ath12k_mac_op_add_interface()
5368 arvif->vdev_type = WMI_VDEV_TYPE_STA; in ath12k_mac_op_add_interface()
5371 arvif->vdev_subtype = WMI_VDEV_SUBTYPE_MESH_11S; in ath12k_mac_op_add_interface()
5374 arvif->vdev_type = WMI_VDEV_TYPE_AP; in ath12k_mac_op_add_interface()
5377 arvif->vdev_type = WMI_VDEV_TYPE_MONITOR; in ath12k_mac_op_add_interface()
5386 arvif->vdev_id, arvif->vdev_type, arvif->vdev_subtype, in ath12k_mac_op_add_interface()
5389 vif->cab_queue = arvif->vdev_id % (ATH12K_HW_MAX_QUEUES - 1); in ath12k_mac_op_add_interface()
5393 ath12k_mac_setup_vdev_create_arg(arvif, &vdev_arg); in ath12k_mac_op_add_interface()
5398 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5404 vif->addr, arvif->vdev_id); in ath12k_mac_op_add_interface()
5405 ar->allocated_vdev_map |= 1LL << arvif->vdev_id; in ath12k_mac_op_add_interface()
5406 ab->free_vdev_map &= ~(1LL << arvif->vdev_id); in ath12k_mac_op_add_interface()
5409 list_add(&arvif->list, &ar->arvifs); in ath12k_mac_op_add_interface()
5415 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5419 arvif->vdev_id, ar->cfg_tx_chainmask, nss, ret); in ath12k_mac_op_add_interface()
5423 switch (arvif->vdev_type) { in ath12k_mac_op_add_interface()
5425 peer_param.vdev_id = arvif->vdev_id; in ath12k_mac_op_add_interface()
5428 ret = ath12k_peer_create(ar, arvif, NULL, &peer_param); in ath12k_mac_op_add_interface()
5431 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5435 ret = ath12k_mac_set_kickout(arvif); in ath12k_mac_op_add_interface()
5438 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5445 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5449 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5455 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5459 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5465 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5469 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5473 ret = ath12k_wmi_pdev_set_ps_mode(ar, arvif->vdev_id, false); in ath12k_mac_op_add_interface()
5476 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5484 arvif->txpower = vif->bss_conf.txpower; in ath12k_mac_op_add_interface()
5491 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5495 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5498 ath12k_dp_vdev_tx_attach(ar, arvif); in ath12k_mac_op_add_interface()
5508 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { in ath12k_mac_op_add_interface()
5512 arvif->vdev_id); in ath12k_mac_op_add_interface()
5515 arvif->vdev_id, vif->addr); in ath12k_mac_op_add_interface()
5519 ret = ath12k_wait_for_peer_delete_done(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5528 ath12k_wmi_vdev_delete(ar, arvif->vdev_id); in ath12k_mac_op_add_interface()
5530 ar->allocated_vdev_map &= ~(1LL << arvif->vdev_id); in ath12k_mac_op_add_interface()
5531 ab->free_vdev_map |= 1LL << arvif->vdev_id; in ath12k_mac_op_add_interface()
5532 ab->free_vdev_stats_id_map &= ~(1LL << arvif->vdev_stats_id); in ath12k_mac_op_add_interface()
5534 list_del(&arvif->list); in ath12k_mac_op_add_interface()
5572 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_remove_interface() local
5580 arvif->vdev_id); in ath12k_mac_op_remove_interface()
5582 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { in ath12k_mac_op_remove_interface()
5583 ret = ath12k_peer_delete(ar, arvif->vdev_id, vif->addr); in ath12k_mac_op_remove_interface()
5586 arvif->vdev_id, ret); in ath12k_mac_op_remove_interface()
5591 ret = ath12k_wmi_vdev_delete(ar, arvif->vdev_id); in ath12k_mac_op_remove_interface()
5594 arvif->vdev_id, ret); in ath12k_mac_op_remove_interface()
5605 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath12k_mac_op_remove_interface()
5612 ab->free_vdev_map |= 1LL << (arvif->vdev_id); in ath12k_mac_op_remove_interface()
5613 ar->allocated_vdev_map &= ~(1LL << arvif->vdev_id); in ath12k_mac_op_remove_interface()
5614 ab->free_vdev_stats_id_map &= ~(1LL << arvif->vdev_stats_id); in ath12k_mac_op_remove_interface()
5618 vif->addr, arvif->vdev_id); in ath12k_mac_op_remove_interface()
5622 list_del(&arvif->list); in ath12k_mac_op_remove_interface()
5625 ath12k_peer_cleanup(ar, arvif->vdev_id); in ath12k_mac_op_remove_interface()
5631 ath12k_dp_tx_put_bank_profile(&ab->dp, arvif->bank_id); in ath12k_mac_op_remove_interface()
5793 ath12k_mac_vdev_start_restart(struct ath12k_vif *arvif, in ath12k_mac_vdev_start_restart() argument
5797 struct ath12k *ar = arvif->ar; in ath12k_mac_vdev_start_restart()
5800 int he_support = arvif->vif->bss_conf.he_support; in ath12k_mac_vdev_start_restart()
5807 arg.vdev_id = arvif->vdev_id; in ath12k_mac_vdev_start_restart()
5808 arg.dtim_period = arvif->dtim_period; in ath12k_mac_vdev_start_restart()
5809 arg.bcn_intval = arvif->beacon_interval; in ath12k_mac_vdev_start_restart()
5810 arg.punct_bitmap = ~arvif->punct_bitmap; in ath12k_mac_vdev_start_restart()
5825 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { in ath12k_mac_vdev_start_restart()
5826 arg.ssid = arvif->u.ap.ssid; in ath12k_mac_vdev_start_restart()
5827 arg.ssid_len = arvif->u.ap.ssid_len; in ath12k_mac_vdev_start_restart()
5828 arg.hidden_ssid = arvif->u.ap.hidden_ssid; in ath12k_mac_vdev_start_restart()
5841 ret = ath12k_set_he_mu_sounding_mode(ar, arvif); in ath12k_mac_vdev_start_restart()
5873 arvif->vif->addr, arvif->vdev_id); in ath12k_mac_vdev_start_restart()
5882 if (arvif->vdev_type == WMI_VDEV_TYPE_AP && in ath12k_mac_vdev_start_restart()
5891 ret = ath12k_mac_set_txbf_conf(arvif); in ath12k_mac_vdev_start_restart()
5894 arvif->vdev_id, ret); in ath12k_mac_vdev_start_restart()
5899 static int ath12k_mac_vdev_stop(struct ath12k_vif *arvif) in ath12k_mac_vdev_stop() argument
5901 struct ath12k *ar = arvif->ar; in ath12k_mac_vdev_stop()
5908 ret = ath12k_wmi_vdev_stop(ar, arvif->vdev_id); in ath12k_mac_vdev_stop()
5911 arvif->vdev_id, ret); in ath12k_mac_vdev_stop()
5918 arvif->vdev_id, ret); in ath12k_mac_vdev_stop()
5926 arvif->vif->addr, arvif->vdev_id); in ath12k_mac_vdev_stop()
5931 arvif->vdev_id); in ath12k_mac_vdev_stop()
5939 static int ath12k_mac_vdev_start(struct ath12k_vif *arvif, in ath12k_mac_vdev_start() argument
5942 return ath12k_mac_vdev_start_restart(arvif, chandef, false); in ath12k_mac_vdev_start()
5945 static int ath12k_mac_vdev_restart(struct ath12k_vif *arvif, in ath12k_mac_vdev_restart() argument
5948 return ath12k_mac_vdev_start_restart(arvif, chandef, true); in ath12k_mac_vdev_restart()
5996 struct ath12k_vif *arvif; in ath12k_mac_update_vif_chan() local
6004 arvif = (void *)vifs[i].vif->drv_priv; in ath12k_mac_update_vif_chan()
6011 arvif->vdev_id, in ath12k_mac_update_vif_chan()
6017 if (WARN_ON(!arvif->is_started)) in ath12k_mac_update_vif_chan()
6020 if (WARN_ON(!arvif->is_up)) in ath12k_mac_update_vif_chan()
6023 ret = ath12k_wmi_vdev_down(ar, arvif->vdev_id); in ath12k_mac_update_vif_chan()
6026 arvif->vdev_id, ret); in ath12k_mac_update_vif_chan()
6038 arvif = (void *)vifs[i].vif->drv_priv; in ath12k_mac_update_vif_chan()
6040 if (WARN_ON(!arvif->is_started)) in ath12k_mac_update_vif_chan()
6043 if (WARN_ON(!arvif->is_up)) in ath12k_mac_update_vif_chan()
6046 ret = ath12k_mac_vdev_restart(arvif, &vifs[i].new_ctx->def); in ath12k_mac_update_vif_chan()
6049 arvif->vdev_id, ret); in ath12k_mac_update_vif_chan()
6053 ret = ath12k_mac_setup_bcn_tmpl(arvif); in ath12k_mac_update_vif_chan()
6058 ret = ath12k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, in ath12k_mac_update_vif_chan()
6059 arvif->bssid); in ath12k_mac_update_vif_chan()
6062 arvif->vdev_id, ret); in ath12k_mac_update_vif_chan()
6136 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_start_vdev_delay() local
6139 if (WARN_ON(arvif->is_started)) in ath12k_start_vdev_delay()
6142 ret = ath12k_mac_vdev_start(arvif, &arvif->chanctx.def); in ath12k_start_vdev_delay()
6145 arvif->vdev_id, vif->addr, in ath12k_start_vdev_delay()
6146 arvif->chanctx.def.chan->center_freq, ret); in ath12k_start_vdev_delay()
6150 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath12k_start_vdev_delay()
6151 ret = ath12k_monitor_vdev_up(ar, arvif->vdev_id); in ath12k_start_vdev_delay()
6158 arvif->is_started = true; in ath12k_start_vdev_delay()
6172 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_assign_vif_chanctx() local
6180 ctx, arvif->vdev_id); in ath12k_mac_op_assign_vif_chanctx()
6182 arvif->punct_bitmap = link_conf->eht_puncturing; in ath12k_mac_op_assign_vif_chanctx()
6186 arvif->vdev_type != WMI_VDEV_TYPE_AP && in ath12k_mac_op_assign_vif_chanctx()
6187 arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && in ath12k_mac_op_assign_vif_chanctx()
6188 !ath12k_peer_exist_by_vdev_id(ab, arvif->vdev_id)) { in ath12k_mac_op_assign_vif_chanctx()
6189 memcpy(&arvif->chanctx, ctx, sizeof(*ctx)); in ath12k_mac_op_assign_vif_chanctx()
6194 if (WARN_ON(arvif->is_started)) { in ath12k_mac_op_assign_vif_chanctx()
6200 (arvif->vdev_type == WMI_VDEV_TYPE_AP || in ath12k_mac_op_assign_vif_chanctx()
6201 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR)) { in ath12k_mac_op_assign_vif_chanctx()
6202 param.vdev_id = arvif->vdev_id; in ath12k_mac_op_assign_vif_chanctx()
6206 ret = ath12k_peer_create(ar, arvif, NULL, &param); in ath12k_mac_op_assign_vif_chanctx()
6214 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath12k_mac_op_assign_vif_chanctx()
6218 arvif->is_started = true; in ath12k_mac_op_assign_vif_chanctx()
6222 ret = ath12k_mac_vdev_start(arvif, &ctx->def); in ath12k_mac_op_assign_vif_chanctx()
6225 arvif->vdev_id, vif->addr, in ath12k_mac_op_assign_vif_chanctx()
6230 if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && ar->monitor_vdev_created) in ath12k_mac_op_assign_vif_chanctx()
6233 arvif->is_started = true; in ath12k_mac_op_assign_vif_chanctx()
6251 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_unassign_vif_chanctx() local
6258 ctx, arvif->vdev_id); in ath12k_mac_op_unassign_vif_chanctx()
6260 WARN_ON(!arvif->is_started); in ath12k_mac_op_unassign_vif_chanctx()
6263 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR && in ath12k_mac_op_unassign_vif_chanctx()
6265 ath12k_peer_delete(ar, arvif->vdev_id, ar->mac_addr); in ath12k_mac_op_unassign_vif_chanctx()
6267 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath12k_mac_op_unassign_vif_chanctx()
6274 arvif->is_started = false; in ath12k_mac_op_unassign_vif_chanctx()
6277 ret = ath12k_mac_vdev_stop(arvif); in ath12k_mac_op_unassign_vif_chanctx()
6280 arvif->vdev_id, ret); in ath12k_mac_op_unassign_vif_chanctx()
6282 arvif->is_started = false; in ath12k_mac_op_unassign_vif_chanctx()
6285 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) in ath12k_mac_op_unassign_vif_chanctx()
6286 ath12k_wmi_vdev_down(ar, arvif->vdev_id); in ath12k_mac_op_unassign_vif_chanctx()
6288 if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && in ath12k_mac_op_unassign_vif_chanctx()
6318 struct ath12k_vif *arvif; in ath12k_set_vdev_param_to_all_vifs() local
6322 list_for_each_entry(arvif, &ar->arvifs, list) { in ath12k_set_vdev_param_to_all_vifs()
6324 param, arvif->vdev_id, value); in ath12k_set_vdev_param_to_all_vifs()
6326 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_set_vdev_param_to_all_vifs()
6330 param, arvif->vdev_id, ret); in ath12k_set_vdev_param_to_all_vifs()
6502 static int ath12k_mac_set_fixed_rate_params(struct ath12k_vif *arvif, in ath12k_mac_set_fixed_rate_params() argument
6505 struct ath12k *ar = arvif->ar; in ath12k_mac_set_fixed_rate_params()
6512 arvif->vdev_id, rate, nss, sgi); in ath12k_mac_set_fixed_rate_params()
6515 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_fixed_rate_params()
6524 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_fixed_rate_params()
6533 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_fixed_rate_params()
6542 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_fixed_rate_params()
6581 struct ath12k_vif *arvif = data; in ath12k_mac_set_bitrate_mask_iter() local
6583 struct ath12k *ar = arvif->ar; in ath12k_mac_set_bitrate_mask_iter()
6595 struct ath12k_vif *arvif = data; in ath12k_mac_disable_peer_fixed_rate() local
6596 struct ath12k *ar = arvif->ar; in ath12k_mac_disable_peer_fixed_rate()
6600 arvif->vdev_id, in ath12k_mac_disable_peer_fixed_rate()
6614 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_set_bitrate_mask() local
6616 struct ath12k *ar = arvif->ar; in ath12k_mac_op_set_bitrate_mask()
6653 arvif->vdev_id, ret); in ath12k_mac_op_set_bitrate_mask()
6658 arvif); in ath12k_mac_op_set_bitrate_mask()
6704 arvif); in ath12k_mac_op_set_bitrate_mask()
6708 arvif->bitrate_mask = *mask; in ath12k_mac_op_set_bitrate_mask()
6711 arvif); in ath12k_mac_op_set_bitrate_mask()
6718 ret = ath12k_mac_set_fixed_rate_params(arvif, rate, nss, sgi, ldpc); in ath12k_mac_op_set_bitrate_mask()
6721 arvif->vdev_id, ret); in ath12k_mac_op_set_bitrate_mask()
6735 struct ath12k_vif *arvif; in ath12k_mac_op_reconfig_complete() local
6765 list_for_each_entry(arvif, &ar->arvifs, list) { in ath12k_mac_op_reconfig_complete()
6768 arvif->key_cipher, in ath12k_mac_op_reconfig_complete()
6769 arvif->is_up, in ath12k_mac_op_reconfig_complete()
6770 arvif->vdev_type); in ath12k_mac_op_reconfig_complete()
6776 if (arvif->is_up && in ath12k_mac_op_reconfig_complete()
6777 arvif->vdev_type == WMI_VDEV_TYPE_STA && in ath12k_mac_op_reconfig_complete()
6778 arvif->vdev_subtype == WMI_VDEV_SUBTYPE_NONE) { in ath12k_mac_op_reconfig_complete()
6779 ieee80211_hw_restart_disconnect(arvif->vif); in ath12k_mac_op_reconfig_complete()