Lines Matching refs:arvif

957 static void ath10k_wmi_tx_beacon_nowait(struct ath10k_vif *arvif)  in ath10k_wmi_tx_beacon_nowait()  argument
959 struct ath10k *ar = arvif->ar; in ath10k_wmi_tx_beacon_nowait()
966 bcn = arvif->beacon; in ath10k_wmi_tx_beacon_nowait()
973 switch (arvif->beacon_state) { in ath10k_wmi_tx_beacon_nowait()
978 arvif->beacon_state = ATH10K_BEACON_SENDING; in ath10k_wmi_tx_beacon_nowait()
981 ret = ath10k_wmi_beacon_send_ref_nowait(arvif->ar, in ath10k_wmi_tx_beacon_nowait()
982 arvif->vdev_id, in ath10k_wmi_tx_beacon_nowait()
991 arvif->beacon_state = ATH10K_BEACON_SENT; in ath10k_wmi_tx_beacon_nowait()
993 arvif->beacon_state = ATH10K_BEACON_SCHEDULED; in ath10k_wmi_tx_beacon_nowait()
1003 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); in ath10k_wmi_tx_beacons_iter() local
1005 ath10k_wmi_tx_beacon_nowait(arvif); in ath10k_wmi_tx_beacons_iter()
2192 struct ath10k_vif *arvif, in ath10k_wmi_update_tim() argument
2208 BUILD_BUG_ON(sizeof(arvif->u.ap.tim_bitmap) != in ath10k_wmi_update_tim()
2211 for (i = 0; i < sizeof(arvif->u.ap.tim_bitmap); i++) { in ath10k_wmi_update_tim()
2214 arvif->u.ap.tim_bitmap[i] = (v >> ((i % 4) * 8)) & 0xFF; in ath10k_wmi_update_tim()
2219 arvif->u.ap.tim_len = 0; in ath10k_wmi_update_tim()
2220 for (i = 0; i < sizeof(arvif->u.ap.tim_bitmap); i++) in ath10k_wmi_update_tim()
2221 if (arvif->u.ap.tim_bitmap[i]) in ath10k_wmi_update_tim()
2222 arvif->u.ap.tim_len = i; in ath10k_wmi_update_tim()
2224 arvif->u.ap.tim_len++; in ath10k_wmi_update_tim()
2234 if (arvif->vdev_type != WMI_VDEV_TYPE_IBSS) in ath10k_wmi_update_tim()
2243 if (pvm_len < arvif->u.ap.tim_len) { in ath10k_wmi_update_tim()
2244 int expand_size = sizeof(arvif->u.ap.tim_bitmap) - pvm_len; in ath10k_wmi_update_tim()
2259 if (pvm_len > sizeof(arvif->u.ap.tim_bitmap)) { in ath10k_wmi_update_tim()
2265 memcpy(tim->virtual_map, arvif->u.ap.tim_bitmap, pvm_len); in ath10k_wmi_update_tim()
2340 static void ath10k_wmi_update_noa(struct ath10k *ar, struct ath10k_vif *arvif, in ath10k_wmi_update_noa() argument
2344 u8 *new_data, *old_data = arvif->u.ap.noa_data; in ath10k_wmi_update_noa()
2347 if (arvif->vdev_subtype != WMI_VDEV_SUBTYPE_P2P_GO) in ath10k_wmi_update_noa()
2363 arvif->u.ap.noa_data = new_data; in ath10k_wmi_update_noa()
2364 arvif->u.ap.noa_len = new_len; in ath10k_wmi_update_noa()
2369 if (arvif->u.ap.noa_data) in ath10k_wmi_update_noa()
2370 if (!pskb_expand_head(bcn, 0, arvif->u.ap.noa_len, GFP_ATOMIC)) in ath10k_wmi_update_noa()
2371 memcpy(skb_put(bcn, arvif->u.ap.noa_len), in ath10k_wmi_update_noa()
2372 arvif->u.ap.noa_data, in ath10k_wmi_update_noa()
2373 arvif->u.ap.noa_len); in ath10k_wmi_update_noa()
2378 arvif->u.ap.noa_data = NULL; in ath10k_wmi_update_noa()
2379 arvif->u.ap.noa_len = 0; in ath10k_wmi_update_noa()
2422 struct ath10k_vif *arvif; in ath10k_wmi_event_host_swba() local
2464 arvif = ath10k_get_arvif(ar, vdev_id); in ath10k_wmi_event_host_swba()
2465 if (arvif == NULL) { in ath10k_wmi_event_host_swba()
2476 if (arvif->vif->csa_active && in ath10k_wmi_event_host_swba()
2477 ieee80211_csa_is_complete(arvif->vif)) { in ath10k_wmi_event_host_swba()
2478 ieee80211_csa_finish(arvif->vif); in ath10k_wmi_event_host_swba()
2482 bcn = ieee80211_beacon_get(ar->hw, arvif->vif); in ath10k_wmi_event_host_swba()
2488 ath10k_tx_h_seq_no(arvif->vif, bcn); in ath10k_wmi_event_host_swba()
2489 ath10k_wmi_update_tim(ar, arvif, bcn, tim_info); in ath10k_wmi_event_host_swba()
2490 ath10k_wmi_update_noa(ar, arvif, bcn, noa_info); in ath10k_wmi_event_host_swba()
2494 if (arvif->beacon) { in ath10k_wmi_event_host_swba()
2495 switch (arvif->beacon_state) { in ath10k_wmi_event_host_swba()
2500 arvif->vdev_id); in ath10k_wmi_event_host_swba()
2504 arvif->vdev_id); in ath10k_wmi_event_host_swba()
2509 ath10k_mac_vif_beacon_free(arvif); in ath10k_wmi_event_host_swba()
2512 if (!arvif->beacon_buf) { in ath10k_wmi_event_host_swba()
2513 paddr = dma_map_single(arvif->ar->dev, bcn->data, in ath10k_wmi_event_host_swba()
2515 ret = dma_mapping_error(arvif->ar->dev, paddr); in ath10k_wmi_event_host_swba()
2531 memcpy(arvif->beacon_buf, bcn->data, bcn->len); in ath10k_wmi_event_host_swba()
2532 ATH10K_SKB_CB(bcn)->paddr = arvif->beacon_paddr; in ath10k_wmi_event_host_swba()
2535 arvif->beacon = bcn; in ath10k_wmi_event_host_swba()
2536 arvif->beacon_state = ATH10K_BEACON_SCHEDULED; in ath10k_wmi_event_host_swba()