Lines Matching refs:arvif

505 	struct ath12k_vif *arvif = (void *)vif->drv_priv;  in ath12k_get_arvif_iter()  local
507 if (arvif->vdev_id == arvif_iter->vdev_id) in ath12k_get_arvif_iter()
508 arvif_iter->arvif = arvif; in ath12k_get_arvif_iter()
523 if (!arvif_iter.arvif) { in ath12k_mac_get_arvif()
528 return arvif_iter.arvif; in ath12k_mac_get_arvif()
536 struct ath12k_vif *arvif; in ath12k_mac_get_arvif_by_vdev_id() local
541 arvif = ath12k_mac_get_arvif(pdev->ar, vdev_id); in ath12k_mac_get_arvif_by_vdev_id()
542 if (arvif) in ath12k_mac_get_arvif_by_vdev_id()
543 return arvif; in ath12k_mac_get_arvif_by_vdev_id()
610 struct ath12k_vif *arvif; in ath12k_mac_txpower_recalc() local
616 list_for_each_entry(arvif, &ar->arvifs, list) { in ath12k_mac_txpower_recalc()
617 if (arvif->txpower <= 0) in ath12k_mac_txpower_recalc()
621 txpower = arvif->txpower; in ath12k_mac_txpower_recalc()
623 txpower = min(txpower, arvif->txpower); in ath12k_mac_txpower_recalc()
664 static int ath12k_recalc_rtscts_prot(struct ath12k_vif *arvif) in ath12k_recalc_rtscts_prot() argument
666 struct ath12k *ar = arvif->ar; in ath12k_recalc_rtscts_prot()
680 if (arvif->num_legacy_stations > 0) in ath12k_recalc_rtscts_prot()
686 if (arvif->rtscts_prot_mode == rts_cts) in ath12k_recalc_rtscts_prot()
689 arvif->rtscts_prot_mode = rts_cts; in ath12k_recalc_rtscts_prot()
692 arvif->vdev_id, rts_cts); in ath12k_recalc_rtscts_prot()
694 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_recalc_rtscts_prot()
698 arvif->vdev_id, ret); in ath12k_recalc_rtscts_prot()
703 static int ath12k_mac_set_kickout(struct ath12k_vif *arvif) in ath12k_mac_set_kickout() argument
705 struct ath12k *ar = arvif->ar; in ath12k_mac_set_kickout()
714 arvif->vdev_id, ret); in ath12k_mac_set_kickout()
719 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath12k_mac_set_kickout()
723 arvif->vdev_id, ret); in ath12k_mac_set_kickout()
728 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath12k_mac_set_kickout()
732 arvif->vdev_id, ret); in ath12k_mac_set_kickout()
737 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, param, in ath12k_mac_set_kickout()
741 arvif->vdev_id, ret); in ath12k_mac_set_kickout()
1095 static int ath12k_mac_setup_bcn_tmpl(struct ath12k_vif *arvif) in ath12k_mac_setup_bcn_tmpl() argument
1097 struct ath12k *ar = arvif->ar; in ath12k_mac_setup_bcn_tmpl()
1100 struct ieee80211_vif *vif = arvif->vif; in ath12k_mac_setup_bcn_tmpl()
1107 if (arvif->vdev_type != WMI_VDEV_TYPE_AP) in ath12k_mac_setup_bcn_tmpl()
1120 arvif->rsnie_present = true; in ath12k_mac_setup_bcn_tmpl()
1125 arvif->wpaie_present = true; in ath12k_mac_setup_bcn_tmpl()
1127 ret = ath12k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn); in ath12k_mac_setup_bcn_tmpl()
1138 static void ath12k_control_beaconing(struct ath12k_vif *arvif, in ath12k_control_beaconing() argument
1141 struct ath12k *ar = arvif->ar; in ath12k_control_beaconing()
1144 lockdep_assert_held(&arvif->ar->conf_mutex); in ath12k_control_beaconing()
1147 ret = ath12k_wmi_vdev_down(ar, arvif->vdev_id); in ath12k_control_beaconing()
1150 arvif->vdev_id, ret); in ath12k_control_beaconing()
1152 arvif->is_up = false; in ath12k_control_beaconing()
1157 ret = ath12k_mac_setup_bcn_tmpl(arvif); in ath12k_control_beaconing()
1164 arvif->aid = 0; in ath12k_control_beaconing()
1166 ether_addr_copy(arvif->bssid, info->bssid); in ath12k_control_beaconing()
1168 ret = ath12k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, in ath12k_control_beaconing()
1169 arvif->bssid); in ath12k_control_beaconing()
1172 arvif->vdev_id, ret); in ath12k_control_beaconing()
1176 arvif->is_up = true; in ath12k_control_beaconing()
1178 ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "mac vdev %d up\n", arvif->vdev_id); in ath12k_control_beaconing()
1186 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_basic() local
1197 arg->vdev_id = arvif->vdev_id; in ath12k_peer_assoc_h_basic()
1214 struct ath12k_vif *arvif = (struct ath12k_vif *)vif->drv_priv; in ath12k_peer_assoc_h_crypto() local
1226 if (arvif->rsnie_present || arvif->wpaie_present) { in ath12k_peer_assoc_h_crypto()
1228 if (arvif->wpaie_present) in ath12k_peer_assoc_h_crypto()
1272 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_rates() local
1290 ratemask &= arvif->bitrate_mask.control[band].legacy; in ath12k_peer_assoc_h_rates()
1335 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_ht() local
1352 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs; in ath12k_peer_assoc_h_ht()
1376 if (arvif->bitrate_mask.control[band].gi != NL80211_TXRATE_FORCE_LGI) { in ath12k_peer_assoc_h_ht()
1496 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_vht() local
1512 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs; in ath12k_peer_assoc_h_vht()
1771 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_qos() local
1773 switch (arvif->vdev_type) { in ath12k_peer_assoc_h_qos()
1803 struct ath12k_vif *arvif, in ath12k_peer_assoc_qos_ap() argument
1813 arg.vdev_id = arvif->vdev_id; in ath12k_peer_assoc_qos_ap()
1865 arg.param, arvif->vdev_id, ret); in ath12k_peer_assoc_qos_ap()
1934 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_peer_assoc_h_phymode() local
1945 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs; in ath12k_peer_assoc_h_phymode()
1946 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs; in ath12k_peer_assoc_h_phymode()
2030 static int ath12k_setup_peer_smps(struct ath12k *ar, struct ath12k_vif *arvif, in ath12k_setup_peer_smps() argument
2045 return ath12k_wmi_set_peer_param(ar, addr, arvif->vdev_id, in ath12k_setup_peer_smps()
2055 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_bss_assoc() local
2065 arvif->vdev_id, arvif->bssid, arvif->aid); in ath12k_bss_assoc()
2072 bss_conf->bssid, arvif->vdev_id); in ath12k_bss_assoc()
2084 bss_conf->bssid, arvif->vdev_id, ret); in ath12k_bss_assoc()
2090 bss_conf->bssid, arvif->vdev_id); in ath12k_bss_assoc()
2094 ret = ath12k_setup_peer_smps(ar, arvif, bss_conf->bssid, in ath12k_bss_assoc()
2098 arvif->vdev_id, ret); in ath12k_bss_assoc()
2102 WARN_ON(arvif->is_up); in ath12k_bss_assoc()
2104 arvif->aid = vif->cfg.aid; in ath12k_bss_assoc()
2105 ether_addr_copy(arvif->bssid, bss_conf->bssid); in ath12k_bss_assoc()
2107 ret = ath12k_wmi_vdev_up(ar, arvif->vdev_id, arvif->aid, arvif->bssid); in ath12k_bss_assoc()
2110 arvif->vdev_id, ret); in ath12k_bss_assoc()
2114 arvif->is_up = true; in ath12k_bss_assoc()
2118 arvif->vdev_id, bss_conf->bssid, vif->cfg.aid); in ath12k_bss_assoc()
2122 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, arvif->bssid); in ath12k_bss_assoc()
2130 ret = ath12k_wmi_set_peer_param(ar, arvif->bssid, in ath12k_bss_assoc()
2131 arvif->vdev_id, in ath12k_bss_assoc()
2138 ret = ath12k_wmi_send_obss_spr_cmd(ar, arvif->vdev_id, in ath12k_bss_assoc()
2142 arvif->vdev_id, ret); in ath12k_bss_assoc()
2149 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_bss_disassoc() local
2155 arvif->vdev_id, arvif->bssid); in ath12k_bss_disassoc()
2157 ret = ath12k_wmi_vdev_down(ar, arvif->vdev_id); in ath12k_bss_disassoc()
2160 arvif->vdev_id, ret); in ath12k_bss_disassoc()
2162 arvif->is_up = false; in ath12k_bss_disassoc()
2196 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_recalculate_mgmt_rate() local
2217 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, vdev_param, in ath12k_recalculate_mgmt_rate()
2223 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, vdev_param, in ath12k_recalculate_mgmt_rate()
2229 static int ath12k_mac_fils_discovery(struct ath12k_vif *arvif, in ath12k_mac_fils_discovery() argument
2232 struct ath12k *ar = arvif->ar; in ath12k_mac_fils_discovery()
2241 tmpl = ieee80211_get_fils_discovery_tmpl(ar->hw, arvif->vif); in ath12k_mac_fils_discovery()
2243 ret = ath12k_wmi_fils_discovery_tmpl(ar, arvif->vdev_id, in ath12k_mac_fils_discovery()
2250 arvif->vif); in ath12k_mac_fils_discovery()
2252 ret = ath12k_wmi_probe_resp_tmpl(ar, arvif->vdev_id, in ath12k_mac_fils_discovery()
2255 return ath12k_wmi_fils_discovery(ar, arvif->vdev_id, 0, false); in ath12k_mac_fils_discovery()
2261 arvif->vdev_id, (unsol_bcast_probe_resp_enabled ? in ath12k_mac_fils_discovery()
2269 ret = ath12k_wmi_fils_discovery(ar, arvif->vdev_id, interval, in ath12k_mac_fils_discovery()
2281 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_bss_info_changed() local
2297 arvif->beacon_interval = info->beacon_int; in ath12k_mac_op_bss_info_changed()
2300 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2302 arvif->beacon_interval); in ath12k_mac_op_bss_info_changed()
2305 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2309 arvif->beacon_interval, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2319 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2323 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2325 ret = ath12k_mac_setup_bcn_tmpl(arvif); in ath12k_mac_op_bss_info_changed()
2332 arvif->dtim_period = info->dtim_period; in ath12k_mac_op_bss_info_changed()
2335 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2337 arvif->dtim_period); in ath12k_mac_op_bss_info_changed()
2341 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2345 arvif->dtim_period, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2350 arvif->u.ap.ssid_len = vif->cfg.ssid_len; in ath12k_mac_op_bss_info_changed()
2352 memcpy(arvif->u.ap.ssid, vif->cfg.ssid, vif->cfg.ssid_len); in ath12k_mac_op_bss_info_changed()
2353 arvif->u.ap.hidden_ssid = info->hidden_ssid; in ath12k_mac_op_bss_info_changed()
2357 ether_addr_copy(arvif->bssid, info->bssid); in ath12k_mac_op_bss_info_changed()
2360 ath12k_control_beaconing(arvif, info); in ath12k_mac_op_bss_info_changed()
2362 if (arvif->is_up && vif->bss_conf.he_support && in ath12k_mac_op_bss_info_changed()
2365 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2371 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2375 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2379 param_value, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2383 param_value, arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2393 if (arvif->is_started) { in ath12k_mac_op_bss_info_changed()
2394 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2398 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2401 cts_prot, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2417 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2421 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2425 slottime, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2437 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2441 arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2445 preamble, arvif->vdev_id); in ath12k_mac_op_bss_info_changed()
2457 arvif->vdev_id, info->txpower); in ath12k_mac_op_bss_info_changed()
2459 arvif->txpower = info->txpower; in ath12k_mac_op_bss_info_changed()
2464 !ath12k_mac_vif_chan(arvif->vif, &def)) { in ath12k_mac_op_bss_info_changed()
2488 arvif->vdev_id, rate); in ath12k_mac_op_bss_info_changed()
2491 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2496 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2499 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2504 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2508 !ath12k_mac_vif_chan(arvif->vif, &def)) in ath12k_mac_op_bss_info_changed()
2519 ath12k_wmi_send_obss_spr_cmd(ar, arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2525 arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2531 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2534 arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2538 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2540 arvif->vdev_id, in ath12k_mac_op_bss_info_changed()
2546 arvif->vdev_id, ret); in ath12k_mac_op_bss_info_changed()
2552 ath12k_mac_fils_discovery(arvif, info); in ath12k_mac_op_bss_info_changed()
2721 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_hw_scan() local
2736 ar->scan.vdev_id = arvif->vdev_id; in ath12k_mac_op_hw_scan()
2751 arg.vdev_id = arvif->vdev_id; in ath12k_mac_op_hw_scan()
2807 static int ath12k_install_key(struct ath12k_vif *arvif, in ath12k_install_key() argument
2813 struct ath12k *ar = arvif->ar; in ath12k_install_key()
2815 .vdev_id = arvif->vdev_id, in ath12k_install_key()
2823 lockdep_assert_held(&arvif->ar->conf_mutex); in ath12k_install_key()
2866 ret = ath12k_wmi_vdev_install_key(arvif->ar, &arg); in ath12k_install_key()
2874 if (ether_addr_equal(macaddr, arvif->vif->addr)) in ath12k_install_key()
2875 arvif->key_cipher = key->cipher; in ath12k_install_key()
2880 static int ath12k_clear_peer_keys(struct ath12k_vif *arvif, in ath12k_clear_peer_keys() argument
2883 struct ath12k *ar = arvif->ar; in ath12k_clear_peer_keys()
2894 peer = ath12k_peer_find(ab, arvif->vdev_id, addr); in ath12k_clear_peer_keys()
2905 ret = ath12k_install_key(arvif, peer->keys[i], in ath12k_clear_peer_keys()
2928 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_set_key() local
2952 else if (arvif->vdev_type == WMI_VDEV_TYPE_STA) in ath12k_mac_op_set_key()
2963 peer = ath12k_peer_find(ab, arvif->vdev_id, peer_addr); in ath12k_mac_op_set_key()
2985 ret = ath12k_install_key(arvif, key, cmd, peer_addr, flags); in ath12k_mac_op_set_key()
2991 ret = ath12k_dp_rx_peer_pn_replay_config(arvif, peer_addr, cmd, key); in ath12k_mac_op_set_key()
2998 peer = ath12k_peer_find(ab, arvif->vdev_id, peer_addr); in ath12k_mac_op_set_key()
3060 ath12k_mac_set_peer_vht_fixed_rate(struct ath12k_vif *arvif, in ath12k_mac_set_peer_vht_fixed_rate() argument
3065 struct ath12k *ar = arvif->ar; in ath12k_mac_set_peer_vht_fixed_rate()
3094 arvif->vdev_id, in ath12k_mac_set_peer_vht_fixed_rate()
3110 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_station_assoc() local
3124 mask = &arvif->bitrate_mask; in ath12k_station_assoc()
3131 sta->addr, arvif->vdev_id, ret); in ath12k_station_assoc()
3137 sta->addr, arvif->vdev_id); in ath12k_station_assoc()
3149 ret = ath12k_mac_set_peer_vht_fixed_rate(arvif, sta, mask, in ath12k_station_assoc()
3161 ret = ath12k_setup_peer_smps(ar, arvif, sta->addr, in ath12k_station_assoc()
3165 arvif->vdev_id, ret); in ath12k_station_assoc()
3170 arvif->num_legacy_stations++; in ath12k_station_assoc()
3171 ret = ath12k_recalc_rtscts_prot(arvif); in ath12k_station_assoc()
3177 ret = ath12k_peer_assoc_qos_ap(ar, arvif, sta); in ath12k_station_assoc()
3180 sta->addr, arvif->vdev_id, ret); in ath12k_station_assoc()
3192 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_station_disassoc() local
3198 arvif->num_legacy_stations--; in ath12k_station_disassoc()
3199 ret = ath12k_recalc_rtscts_prot(arvif); in ath12k_station_disassoc()
3204 ret = ath12k_clear_peer_keys(arvif, sta->addr); in ath12k_station_disassoc()
3207 arvif->vdev_id, ret); in ath12k_station_disassoc()
3216 struct ath12k_vif *arvif; in ath12k_sta_rc_update_wk() local
3230 arvif = arsta->arvif; in ath12k_sta_rc_update_wk()
3231 ar = arvif->ar; in ath12k_sta_rc_update_wk()
3233 if (WARN_ON(ath12k_mac_vif_chan(arvif->vif, &def))) in ath12k_sta_rc_update_wk()
3237 ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs; in ath12k_sta_rc_update_wk()
3238 vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs; in ath12k_sta_rc_update_wk()
3258 err = ath12k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath12k_sta_rc_update_wk()
3269 err = ath12k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath12k_sta_rc_update_wk()
3280 err = ath12k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath12k_sta_rc_update_wk()
3288 mask = &arvif->bitrate_mask; in ath12k_sta_rc_update_wk()
3304 ath12k_mac_set_peer_vht_fixed_rate(arvif, sta, mask, in ath12k_sta_rc_update_wk()
3311 ath12k_peer_assoc_prepare(ar, arvif->vif, sta, in ath12k_sta_rc_update_wk()
3317 sta->addr, arvif->vdev_id, err); in ath12k_sta_rc_update_wk()
3321 sta->addr, arvif->vdev_id); in ath12k_sta_rc_update_wk()
3328 static int ath12k_mac_inc_num_stations(struct ath12k_vif *arvif, in ath12k_mac_inc_num_stations() argument
3331 struct ath12k *ar = arvif->ar; in ath12k_mac_inc_num_stations()
3335 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls) in ath12k_mac_inc_num_stations()
3346 static void ath12k_mac_dec_num_stations(struct ath12k_vif *arvif, in ath12k_mac_dec_num_stations() argument
3349 struct ath12k *ar = arvif->ar; in ath12k_mac_dec_num_stations()
3353 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls) in ath12k_mac_dec_num_stations()
3364 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_station_add() local
3371 ret = ath12k_mac_inc_num_stations(arvif, sta); in ath12k_mac_station_add()
3384 peer_param.vdev_id = arvif->vdev_id; in ath12k_mac_station_add()
3388 ret = ath12k_peer_create(ar, arvif, sta, &peer_param); in ath12k_mac_station_add()
3391 sta->addr, arvif->vdev_id); in ath12k_mac_station_add()
3396 sta->addr, arvif->vdev_id); in ath12k_mac_station_add()
3400 arvif->vdev_id, in ath12k_mac_station_add()
3409 ret = ath12k_dp_peer_setup(ar, arvif->vdev_id, sta->addr); in ath12k_mac_station_add()
3412 sta->addr, arvif->vdev_id, ret); in ath12k_mac_station_add()
3417 !arvif->is_started && in ath12k_mac_station_add()
3418 arvif->vdev_type != WMI_VDEV_TYPE_AP) { in ath12k_mac_station_add()
3429 ath12k_peer_delete(ar, arvif->vdev_id, sta->addr); in ath12k_mac_station_add()
3431 ath12k_mac_dec_num_stations(arvif, sta); in ath12k_mac_station_add()
3443 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_sta_state() local
3458 arsta->arvif = arvif; in ath12k_mac_op_sta_state()
3464 sta->addr, arvif->vdev_id); in ath12k_mac_op_sta_state()
3467 ath12k_dp_peer_cleanup(ar, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3469 ret = ath12k_peer_delete(ar, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3472 sta->addr, arvif->vdev_id); in ath12k_mac_op_sta_state()
3475 sta->addr, arvif->vdev_id); in ath12k_mac_op_sta_state()
3477 ath12k_mac_dec_num_stations(arvif, sta); in ath12k_mac_op_sta_state()
3479 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3482 vif->addr, arvif->vdev_id); in ath12k_mac_op_sta_state()
3505 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3511 if (vif->type == NL80211_IFTYPE_STATION && arvif->is_up) { in ath12k_mac_op_sta_state()
3513 arvif->vdev_id, in ath12k_mac_op_sta_state()
3518 sta->addr, arvif->vdev_id, ret); in ath12k_mac_op_sta_state()
3524 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_state()
3549 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_sta_set_txpwr() local
3566 ret = ath12k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, in ath12k_mac_op_sta_set_txpwr()
3586 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_sta_rc_update() local
3592 peer = ath12k_peer_find(ar->ab, arvif->vdev_id, sta->addr); in ath12k_mac_op_sta_rc_update()
3596 sta->addr, arvif->vdev_id); in ath12k_mac_op_sta_rc_update()
3672 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_conf_tx_uapsd() local
3676 if (arvif->vdev_type != WMI_VDEV_TYPE_STA) in ath12k_conf_tx_uapsd()
3699 arvif->u.sta.uapsd |= value; in ath12k_conf_tx_uapsd()
3701 arvif->u.sta.uapsd &= ~value; in ath12k_conf_tx_uapsd()
3703 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_conf_tx_uapsd()
3705 arvif->u.sta.uapsd); in ath12k_conf_tx_uapsd()
3711 if (arvif->u.sta.uapsd) in ath12k_conf_tx_uapsd()
3716 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_conf_tx_uapsd()
3732 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_conf_tx() local
3740 p = &arvif->wmm_params.ac_vo; in ath12k_mac_op_conf_tx()
3743 p = &arvif->wmm_params.ac_vi; in ath12k_mac_op_conf_tx()
3746 p = &arvif->wmm_params.ac_be; in ath12k_mac_op_conf_tx()
3749 p = &arvif->wmm_params.ac_bk; in ath12k_mac_op_conf_tx()
3763 ret = ath12k_wmi_send_wmm_update_cmd(ar, arvif->vdev_id, in ath12k_mac_op_conf_tx()
3764 &arvif->wmm_params); in ath12k_mac_op_conf_tx()
3846 static int ath12k_mac_set_txbf_conf(struct ath12k_vif *arvif) in ath12k_mac_set_txbf_conf() argument
3849 struct ath12k *ar = arvif->ar; in ath12k_mac_set_txbf_conf()
3877 arvif->vdev_type == WMI_VDEV_TYPE_AP) in ath12k_mac_set_txbf_conf()
3885 arvif->vdev_type == WMI_VDEV_TYPE_STA) in ath12k_mac_set_txbf_conf()
3889 return ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_txbf_conf()
4359 static int ath12k_mac_mgmt_tx_wmi(struct ath12k *ar, struct ath12k_vif *arvif, in ath12k_mac_mgmt_tx_wmi() argument
4395 ret = ath12k_wmi_mgmt_send(ar, arvif->vdev_id, buf_id, skb); in ath12k_mac_mgmt_tx_wmi()
4426 struct ath12k_vif *arvif; in ath12k_mgmt_over_wmi_tx_work() local
4438 arvif = ath12k_vif_to_arvif(skb_cb->vif); in ath12k_mgmt_over_wmi_tx_work()
4439 if (ar->allocated_vdev_map & (1LL << arvif->vdev_id) && in ath12k_mgmt_over_wmi_tx_work()
4440 arvif->is_started) { in ath12k_mgmt_over_wmi_tx_work()
4441 ret = ath12k_mac_mgmt_tx_wmi(ar, arvif, skb); in ath12k_mgmt_over_wmi_tx_work()
4444 arvif->vdev_id, ret); in ath12k_mgmt_over_wmi_tx_work()
4452 arvif->vdev_id, in ath12k_mgmt_over_wmi_tx_work()
4453 arvif->is_started); in ath12k_mgmt_over_wmi_tx_work()
4498 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_tx() local
4526 ret = ath12k_dp_tx(ar, arvif, skb); in ath12k_mac_op_tx()
4729 ath12k_mac_get_vdev_stats_id(struct ath12k_vif *arvif) in ath12k_mac_get_vdev_stats_id() argument
4731 struct ath12k_base *ab = arvif->ar->ab; in ath12k_mac_get_vdev_stats_id()
4747 arvif->vdev_stats_id = vdev_stats_id; in ath12k_mac_get_vdev_stats_id()
4751 static void ath12k_mac_setup_vdev_create_arg(struct ath12k_vif *arvif, in ath12k_mac_setup_vdev_create_arg() argument
4754 struct ath12k *ar = arvif->ar; in ath12k_mac_setup_vdev_create_arg()
4757 arg->if_id = arvif->vdev_id; in ath12k_mac_setup_vdev_create_arg()
4758 arg->type = arvif->vdev_type; in ath12k_mac_setup_vdev_create_arg()
4759 arg->subtype = arvif->vdev_subtype; in ath12k_mac_setup_vdev_create_arg()
4776 arg->if_stats_id = ath12k_mac_get_vdev_stats_id(arvif); in ath12k_mac_setup_vdev_create_arg()
4814 struct ath12k_vif *arvif) in ath12k_set_he_mu_sounding_mode() argument
4821 param_value = ath12k_mac_prepare_he_mode(ar->pdev, arvif->vif->type); in ath12k_set_he_mu_sounding_mode()
4822 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_set_he_mu_sounding_mode()
4826 arvif->vdev_id, ret, param_value); in ath12k_set_he_mu_sounding_mode()
4834 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_set_he_mu_sounding_mode()
4838 arvif->vdev_id, ret); in ath12k_set_he_mu_sounding_mode()
4849 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_update_vif_offload() local
4860 arvif->tx_encap_type = ATH12K_HW_TXRX_ETHERNET; in ath12k_mac_op_update_vif_offload()
4862 arvif->tx_encap_type = ATH12K_HW_TXRX_RAW; in ath12k_mac_op_update_vif_offload()
4864 arvif->tx_encap_type = ATH12K_HW_TXRX_NATIVE_WIFI; in ath12k_mac_op_update_vif_offload()
4866 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_update_vif_offload()
4867 param_id, arvif->tx_encap_type); in ath12k_mac_op_update_vif_offload()
4870 arvif->vdev_id, ret); in ath12k_mac_op_update_vif_offload()
4882 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_update_vif_offload()
4886 arvif->vdev_id, ret); in ath12k_mac_op_update_vif_offload()
4896 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_add_interface() local
4923 memset(arvif, 0, sizeof(*arvif)); in ath12k_mac_op_add_interface()
4925 arvif->ar = ar; in ath12k_mac_op_add_interface()
4926 arvif->vif = vif; in ath12k_mac_op_add_interface()
4928 INIT_LIST_HEAD(&arvif->list); in ath12k_mac_op_add_interface()
4934 for (i = 0; i < ARRAY_SIZE(arvif->bitrate_mask.control); i++) { in ath12k_mac_op_add_interface()
4935 arvif->bitrate_mask.control[i].legacy = 0xffffffff; in ath12k_mac_op_add_interface()
4936 memset(arvif->bitrate_mask.control[i].ht_mcs, 0xff, in ath12k_mac_op_add_interface()
4937 sizeof(arvif->bitrate_mask.control[i].ht_mcs)); in ath12k_mac_op_add_interface()
4938 memset(arvif->bitrate_mask.control[i].vht_mcs, 0xff, in ath12k_mac_op_add_interface()
4939 sizeof(arvif->bitrate_mask.control[i].vht_mcs)); in ath12k_mac_op_add_interface()
4944 arvif->vdev_id = bit; in ath12k_mac_op_add_interface()
4945 arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE; in ath12k_mac_op_add_interface()
4950 arvif->vdev_type = WMI_VDEV_TYPE_STA; in ath12k_mac_op_add_interface()
4953 arvif->vdev_subtype = WMI_VDEV_SUBTYPE_MESH_11S; in ath12k_mac_op_add_interface()
4956 arvif->vdev_type = WMI_VDEV_TYPE_AP; in ath12k_mac_op_add_interface()
4959 arvif->vdev_type = WMI_VDEV_TYPE_MONITOR; in ath12k_mac_op_add_interface()
4968 arvif->vdev_id, arvif->vdev_type, arvif->vdev_subtype, in ath12k_mac_op_add_interface()
4971 vif->cab_queue = arvif->vdev_id % (ATH12K_HW_MAX_QUEUES - 1); in ath12k_mac_op_add_interface()
4975 ath12k_mac_setup_vdev_create_arg(arvif, &vdev_arg); in ath12k_mac_op_add_interface()
4980 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
4986 vif->addr, arvif->vdev_id); in ath12k_mac_op_add_interface()
4987 ar->allocated_vdev_map |= 1LL << arvif->vdev_id; in ath12k_mac_op_add_interface()
4988 ab->free_vdev_map &= ~(1LL << arvif->vdev_id); in ath12k_mac_op_add_interface()
4991 list_add(&arvif->list, &ar->arvifs); in ath12k_mac_op_add_interface()
4997 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5001 arvif->vdev_id, ar->cfg_tx_chainmask, nss, ret); in ath12k_mac_op_add_interface()
5005 switch (arvif->vdev_type) { in ath12k_mac_op_add_interface()
5007 peer_param.vdev_id = arvif->vdev_id; in ath12k_mac_op_add_interface()
5010 ret = ath12k_peer_create(ar, arvif, NULL, &peer_param); in ath12k_mac_op_add_interface()
5013 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5017 ret = ath12k_mac_set_kickout(arvif); in ath12k_mac_op_add_interface()
5020 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5027 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5031 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5037 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5041 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5047 ret = ath12k_wmi_set_sta_ps_param(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5051 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5055 ret = ath12k_wmi_pdev_set_ps_mode(ar, arvif->vdev_id, false); in ath12k_mac_op_add_interface()
5058 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5066 arvif->txpower = vif->bss_conf.txpower; in ath12k_mac_op_add_interface()
5073 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5077 arvif->vdev_id, ret); in ath12k_mac_op_add_interface()
5080 ath12k_dp_vdev_tx_attach(ar, arvif); in ath12k_mac_op_add_interface()
5090 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { in ath12k_mac_op_add_interface()
5094 arvif->vdev_id); in ath12k_mac_op_add_interface()
5097 arvif->vdev_id, vif->addr); in ath12k_mac_op_add_interface()
5101 ret = ath12k_wait_for_peer_delete_done(ar, arvif->vdev_id, in ath12k_mac_op_add_interface()
5110 ath12k_wmi_vdev_delete(ar, arvif->vdev_id); in ath12k_mac_op_add_interface()
5112 ar->allocated_vdev_map &= ~(1LL << arvif->vdev_id); in ath12k_mac_op_add_interface()
5113 ab->free_vdev_map |= 1LL << arvif->vdev_id; in ath12k_mac_op_add_interface()
5114 ab->free_vdev_stats_id_map &= ~(1LL << arvif->vdev_stats_id); in ath12k_mac_op_add_interface()
5116 list_del(&arvif->list); in ath12k_mac_op_add_interface()
5154 struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif); in ath12k_mac_op_remove_interface() local
5162 arvif->vdev_id); in ath12k_mac_op_remove_interface()
5164 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { in ath12k_mac_op_remove_interface()
5165 ret = ath12k_peer_delete(ar, arvif->vdev_id, vif->addr); in ath12k_mac_op_remove_interface()
5168 arvif->vdev_id, ret); in ath12k_mac_op_remove_interface()
5173 ret = ath12k_wmi_vdev_delete(ar, arvif->vdev_id); in ath12k_mac_op_remove_interface()
5176 arvif->vdev_id, ret); in ath12k_mac_op_remove_interface()
5187 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath12k_mac_op_remove_interface()
5194 ab->free_vdev_map |= 1LL << (arvif->vdev_id); in ath12k_mac_op_remove_interface()
5195 ar->allocated_vdev_map &= ~(1LL << arvif->vdev_id); in ath12k_mac_op_remove_interface()
5196 ab->free_vdev_stats_id_map &= ~(1LL << arvif->vdev_stats_id); in ath12k_mac_op_remove_interface()
5200 vif->addr, arvif->vdev_id); in ath12k_mac_op_remove_interface()
5204 list_del(&arvif->list); in ath12k_mac_op_remove_interface()
5207 ath12k_peer_cleanup(ar, arvif->vdev_id); in ath12k_mac_op_remove_interface()
5213 ath12k_dp_tx_put_bank_profile(&ab->dp, arvif->bank_id); in ath12k_mac_op_remove_interface()
5375 ath12k_mac_vdev_start_restart(struct ath12k_vif *arvif, in ath12k_mac_vdev_start_restart() argument
5379 struct ath12k *ar = arvif->ar; in ath12k_mac_vdev_start_restart()
5382 int he_support = arvif->vif->bss_conf.he_support; in ath12k_mac_vdev_start_restart()
5389 arg.vdev_id = arvif->vdev_id; in ath12k_mac_vdev_start_restart()
5390 arg.dtim_period = arvif->dtim_period; in ath12k_mac_vdev_start_restart()
5391 arg.bcn_intval = arvif->beacon_interval; in ath12k_mac_vdev_start_restart()
5406 if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { in ath12k_mac_vdev_start_restart()
5407 arg.ssid = arvif->u.ap.ssid; in ath12k_mac_vdev_start_restart()
5408 arg.ssid_len = arvif->u.ap.ssid_len; in ath12k_mac_vdev_start_restart()
5409 arg.hidden_ssid = arvif->u.ap.hidden_ssid; in ath12k_mac_vdev_start_restart()
5422 ret = ath12k_set_he_mu_sounding_mode(ar, arvif); in ath12k_mac_vdev_start_restart()
5454 arvif->vif->addr, arvif->vdev_id); in ath12k_mac_vdev_start_restart()
5463 if (arvif->vdev_type == WMI_VDEV_TYPE_AP && in ath12k_mac_vdev_start_restart()
5472 ret = ath12k_mac_set_txbf_conf(arvif); in ath12k_mac_vdev_start_restart()
5475 arvif->vdev_id, ret); in ath12k_mac_vdev_start_restart()
5480 static int ath12k_mac_vdev_stop(struct ath12k_vif *arvif) in ath12k_mac_vdev_stop() argument
5482 struct ath12k *ar = arvif->ar; in ath12k_mac_vdev_stop()
5489 ret = ath12k_wmi_vdev_stop(ar, arvif->vdev_id); in ath12k_mac_vdev_stop()
5492 arvif->vdev_id, ret); in ath12k_mac_vdev_stop()
5499 arvif->vdev_id, ret); in ath12k_mac_vdev_stop()
5507 arvif->vif->addr, arvif->vdev_id); in ath12k_mac_vdev_stop()
5512 arvif->vdev_id); in ath12k_mac_vdev_stop()
5520 static int ath12k_mac_vdev_start(struct ath12k_vif *arvif, in ath12k_mac_vdev_start() argument
5523 return ath12k_mac_vdev_start_restart(arvif, chandef, false); in ath12k_mac_vdev_start()
5526 static int ath12k_mac_vdev_restart(struct ath12k_vif *arvif, in ath12k_mac_vdev_restart() argument
5529 return ath12k_mac_vdev_start_restart(arvif, chandef, true); in ath12k_mac_vdev_restart()
5577 struct ath12k_vif *arvif; in ath12k_mac_update_vif_chan() local
5585 arvif = (void *)vifs[i].vif->drv_priv; in ath12k_mac_update_vif_chan()
5592 arvif->vdev_id, in ath12k_mac_update_vif_chan()
5598 if (WARN_ON(!arvif->is_started)) in ath12k_mac_update_vif_chan()
5601 if (WARN_ON(!arvif->is_up)) in ath12k_mac_update_vif_chan()
5604 ret = ath12k_wmi_vdev_down(ar, arvif->vdev_id); in ath12k_mac_update_vif_chan()
5607 arvif->vdev_id, ret); in ath12k_mac_update_vif_chan()
5619 arvif = (void *)vifs[i].vif->drv_priv; in ath12k_mac_update_vif_chan()
5621 if (WARN_ON(!arvif->is_started)) in ath12k_mac_update_vif_chan()
5624 if (WARN_ON(!arvif->is_up)) in ath12k_mac_update_vif_chan()
5627 ret = ath12k_mac_vdev_restart(arvif, &vifs[i].new_ctx->def); in ath12k_mac_update_vif_chan()
5630 arvif->vdev_id, ret); in ath12k_mac_update_vif_chan()
5634 ret = ath12k_mac_setup_bcn_tmpl(arvif); in ath12k_mac_update_vif_chan()
5639 ret = ath12k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, in ath12k_mac_update_vif_chan()
5640 arvif->bssid); in ath12k_mac_update_vif_chan()
5643 arvif->vdev_id, ret); in ath12k_mac_update_vif_chan()
5717 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_start_vdev_delay() local
5720 if (WARN_ON(arvif->is_started)) in ath12k_start_vdev_delay()
5723 ret = ath12k_mac_vdev_start(arvif, &arvif->chanctx.def); in ath12k_start_vdev_delay()
5726 arvif->vdev_id, vif->addr, in ath12k_start_vdev_delay()
5727 arvif->chanctx.def.chan->center_freq, ret); in ath12k_start_vdev_delay()
5731 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath12k_start_vdev_delay()
5732 ret = ath12k_monitor_vdev_up(ar, arvif->vdev_id); in ath12k_start_vdev_delay()
5739 arvif->is_started = true; in ath12k_start_vdev_delay()
5753 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_assign_vif_chanctx() local
5761 ctx, arvif->vdev_id); in ath12k_mac_op_assign_vif_chanctx()
5765 arvif->vdev_type != WMI_VDEV_TYPE_AP && in ath12k_mac_op_assign_vif_chanctx()
5766 arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && in ath12k_mac_op_assign_vif_chanctx()
5767 !ath12k_peer_exist_by_vdev_id(ab, arvif->vdev_id)) { in ath12k_mac_op_assign_vif_chanctx()
5768 memcpy(&arvif->chanctx, ctx, sizeof(*ctx)); in ath12k_mac_op_assign_vif_chanctx()
5773 if (WARN_ON(arvif->is_started)) { in ath12k_mac_op_assign_vif_chanctx()
5779 (arvif->vdev_type == WMI_VDEV_TYPE_AP || in ath12k_mac_op_assign_vif_chanctx()
5780 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR)) { in ath12k_mac_op_assign_vif_chanctx()
5781 param.vdev_id = arvif->vdev_id; in ath12k_mac_op_assign_vif_chanctx()
5785 ret = ath12k_peer_create(ar, arvif, NULL, &param); in ath12k_mac_op_assign_vif_chanctx()
5793 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath12k_mac_op_assign_vif_chanctx()
5797 arvif->is_started = true; in ath12k_mac_op_assign_vif_chanctx()
5801 ret = ath12k_mac_vdev_start(arvif, &ctx->def); in ath12k_mac_op_assign_vif_chanctx()
5804 arvif->vdev_id, vif->addr, in ath12k_mac_op_assign_vif_chanctx()
5809 if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && ar->monitor_vdev_created) in ath12k_mac_op_assign_vif_chanctx()
5812 arvif->is_started = true; in ath12k_mac_op_assign_vif_chanctx()
5830 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_unassign_vif_chanctx() local
5837 ctx, arvif->vdev_id); in ath12k_mac_op_unassign_vif_chanctx()
5839 WARN_ON(!arvif->is_started); in ath12k_mac_op_unassign_vif_chanctx()
5842 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR && in ath12k_mac_op_unassign_vif_chanctx()
5844 ath12k_peer_delete(ar, arvif->vdev_id, ar->mac_addr); in ath12k_mac_op_unassign_vif_chanctx()
5846 if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { in ath12k_mac_op_unassign_vif_chanctx()
5853 arvif->is_started = false; in ath12k_mac_op_unassign_vif_chanctx()
5857 ret = ath12k_mac_vdev_stop(arvif); in ath12k_mac_op_unassign_vif_chanctx()
5860 arvif->vdev_id, ret); in ath12k_mac_op_unassign_vif_chanctx()
5862 arvif->is_started = false; in ath12k_mac_op_unassign_vif_chanctx()
5865 arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) in ath12k_mac_op_unassign_vif_chanctx()
5866 ath12k_wmi_vdev_down(ar, arvif->vdev_id); in ath12k_mac_op_unassign_vif_chanctx()
5868 if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && in ath12k_mac_op_unassign_vif_chanctx()
5898 struct ath12k_vif *arvif; in ath12k_set_vdev_param_to_all_vifs() local
5902 list_for_each_entry(arvif, &ar->arvifs, list) { in ath12k_set_vdev_param_to_all_vifs()
5904 param, arvif->vdev_id, value); in ath12k_set_vdev_param_to_all_vifs()
5906 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_set_vdev_param_to_all_vifs()
5910 param, arvif->vdev_id, ret); in ath12k_set_vdev_param_to_all_vifs()
6075 static int ath12k_mac_set_fixed_rate_params(struct ath12k_vif *arvif, in ath12k_mac_set_fixed_rate_params() argument
6078 struct ath12k *ar = arvif->ar; in ath12k_mac_set_fixed_rate_params()
6085 arvif->vdev_id, rate, nss, sgi); in ath12k_mac_set_fixed_rate_params()
6088 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_fixed_rate_params()
6097 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_fixed_rate_params()
6106 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_fixed_rate_params()
6115 ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, in ath12k_mac_set_fixed_rate_params()
6154 struct ath12k_vif *arvif = data; in ath12k_mac_set_bitrate_mask_iter() local
6156 struct ath12k *ar = arvif->ar; in ath12k_mac_set_bitrate_mask_iter()
6168 struct ath12k_vif *arvif = data; in ath12k_mac_disable_peer_fixed_rate() local
6169 struct ath12k *ar = arvif->ar; in ath12k_mac_disable_peer_fixed_rate()
6173 arvif->vdev_id, in ath12k_mac_disable_peer_fixed_rate()
6187 struct ath12k_vif *arvif = (void *)vif->drv_priv; in ath12k_mac_op_set_bitrate_mask() local
6189 struct ath12k *ar = arvif->ar; in ath12k_mac_op_set_bitrate_mask()
6226 arvif->vdev_id, ret); in ath12k_mac_op_set_bitrate_mask()
6231 arvif); in ath12k_mac_op_set_bitrate_mask()
6277 arvif); in ath12k_mac_op_set_bitrate_mask()
6281 arvif->bitrate_mask = *mask; in ath12k_mac_op_set_bitrate_mask()
6284 arvif); in ath12k_mac_op_set_bitrate_mask()
6291 ret = ath12k_mac_set_fixed_rate_params(arvif, rate, nss, sgi, ldpc); in ath12k_mac_op_set_bitrate_mask()
6294 arvif->vdev_id, ret); in ath12k_mac_op_set_bitrate_mask()