Lines Matching refs:htt

42 	hash_for_each_possible(ar->htt.rx_ring.skb_table, rxcb, hlist, paddr)  in ath10k_htt_rx_find_skb_paddr()
50 static void ath10k_htt_rx_ring_free(struct ath10k_htt *htt) in ath10k_htt_rx_ring_free() argument
57 if (htt->rx_ring.in_ord_rx) { in ath10k_htt_rx_ring_free()
58 hash_for_each_safe(htt->rx_ring.skb_table, i, n, rxcb, hlist) { in ath10k_htt_rx_ring_free()
60 dma_unmap_single(htt->ar->dev, rxcb->paddr, in ath10k_htt_rx_ring_free()
67 for (i = 0; i < htt->rx_ring.size; i++) { in ath10k_htt_rx_ring_free()
68 skb = htt->rx_ring.netbufs_ring[i]; in ath10k_htt_rx_ring_free()
73 dma_unmap_single(htt->ar->dev, rxcb->paddr, in ath10k_htt_rx_ring_free()
80 htt->rx_ring.fill_cnt = 0; in ath10k_htt_rx_ring_free()
81 hash_init(htt->rx_ring.skb_table); in ath10k_htt_rx_ring_free()
82 memset(htt->rx_ring.netbufs_ring, 0, in ath10k_htt_rx_ring_free()
83 htt->rx_ring.size * sizeof(htt->rx_ring.netbufs_ring[0])); in ath10k_htt_rx_ring_free()
86 static size_t ath10k_htt_get_rx_ring_size_32(struct ath10k_htt *htt) in ath10k_htt_get_rx_ring_size_32() argument
88 return htt->rx_ring.size * sizeof(htt->rx_ring.paddrs_ring_32); in ath10k_htt_get_rx_ring_size_32()
91 static size_t ath10k_htt_get_rx_ring_size_64(struct ath10k_htt *htt) in ath10k_htt_get_rx_ring_size_64() argument
93 return htt->rx_ring.size * sizeof(htt->rx_ring.paddrs_ring_64); in ath10k_htt_get_rx_ring_size_64()
96 static void ath10k_htt_config_paddrs_ring_32(struct ath10k_htt *htt, in ath10k_htt_config_paddrs_ring_32() argument
99 htt->rx_ring.paddrs_ring_32 = vaddr; in ath10k_htt_config_paddrs_ring_32()
102 static void ath10k_htt_config_paddrs_ring_64(struct ath10k_htt *htt, in ath10k_htt_config_paddrs_ring_64() argument
105 htt->rx_ring.paddrs_ring_64 = vaddr; in ath10k_htt_config_paddrs_ring_64()
108 static void ath10k_htt_set_paddrs_ring_32(struct ath10k_htt *htt, in ath10k_htt_set_paddrs_ring_32() argument
111 htt->rx_ring.paddrs_ring_32[idx] = __cpu_to_le32(paddr); in ath10k_htt_set_paddrs_ring_32()
114 static void ath10k_htt_set_paddrs_ring_64(struct ath10k_htt *htt, in ath10k_htt_set_paddrs_ring_64() argument
117 htt->rx_ring.paddrs_ring_64[idx] = __cpu_to_le64(paddr); in ath10k_htt_set_paddrs_ring_64()
120 static void ath10k_htt_reset_paddrs_ring_32(struct ath10k_htt *htt, int idx) in ath10k_htt_reset_paddrs_ring_32() argument
122 htt->rx_ring.paddrs_ring_32[idx] = 0; in ath10k_htt_reset_paddrs_ring_32()
125 static void ath10k_htt_reset_paddrs_ring_64(struct ath10k_htt *htt, int idx) in ath10k_htt_reset_paddrs_ring_64() argument
127 htt->rx_ring.paddrs_ring_64[idx] = 0; in ath10k_htt_reset_paddrs_ring_64()
130 static void *ath10k_htt_get_vaddr_ring_32(struct ath10k_htt *htt) in ath10k_htt_get_vaddr_ring_32() argument
132 return (void *)htt->rx_ring.paddrs_ring_32; in ath10k_htt_get_vaddr_ring_32()
135 static void *ath10k_htt_get_vaddr_ring_64(struct ath10k_htt *htt) in ath10k_htt_get_vaddr_ring_64() argument
137 return (void *)htt->rx_ring.paddrs_ring_64; in ath10k_htt_get_vaddr_ring_64()
140 static int __ath10k_htt_rx_ring_fill_n(struct ath10k_htt *htt, int num) in __ath10k_htt_rx_ring_fill_n() argument
155 idx = __le32_to_cpu(*htt->rx_ring.alloc_idx.vaddr); in __ath10k_htt_rx_ring_fill_n()
172 paddr = dma_map_single(htt->ar->dev, skb->data, in __ath10k_htt_rx_ring_fill_n()
176 if (unlikely(dma_mapping_error(htt->ar->dev, paddr))) { in __ath10k_htt_rx_ring_fill_n()
184 htt->rx_ring.netbufs_ring[idx] = skb; in __ath10k_htt_rx_ring_fill_n()
185 ath10k_htt_set_paddrs_ring(htt, paddr, idx); in __ath10k_htt_rx_ring_fill_n()
186 htt->rx_ring.fill_cnt++; in __ath10k_htt_rx_ring_fill_n()
188 if (htt->rx_ring.in_ord_rx) { in __ath10k_htt_rx_ring_fill_n()
189 hash_add(htt->rx_ring.skb_table, in __ath10k_htt_rx_ring_fill_n()
196 idx &= htt->rx_ring.size_mask; in __ath10k_htt_rx_ring_fill_n()
205 *htt->rx_ring.alloc_idx.vaddr = __cpu_to_le32(idx); in __ath10k_htt_rx_ring_fill_n()
209 static int ath10k_htt_rx_ring_fill_n(struct ath10k_htt *htt, int num) in ath10k_htt_rx_ring_fill_n() argument
211 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_ring_fill_n()
212 return __ath10k_htt_rx_ring_fill_n(htt, num); in ath10k_htt_rx_ring_fill_n()
215 static void ath10k_htt_rx_msdu_buff_replenish(struct ath10k_htt *htt) in ath10k_htt_rx_msdu_buff_replenish() argument
235 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_msdu_buff_replenish()
236 num_deficit = htt->rx_ring.fill_level - htt->rx_ring.fill_cnt; in ath10k_htt_rx_msdu_buff_replenish()
239 ret = ath10k_htt_rx_ring_fill_n(htt, num_to_fill); in ath10k_htt_rx_msdu_buff_replenish()
247 mod_timer(&htt->rx_ring.refill_retry_timer, jiffies + in ath10k_htt_rx_msdu_buff_replenish()
250 mod_timer(&htt->rx_ring.refill_retry_timer, jiffies + in ath10k_htt_rx_msdu_buff_replenish()
253 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_msdu_buff_replenish()
258 struct ath10k_htt *htt = from_timer(htt, t, rx_ring.refill_retry_timer); in ath10k_htt_rx_ring_refill_retry() local
260 ath10k_htt_rx_msdu_buff_replenish(htt); in ath10k_htt_rx_ring_refill_retry()
265 struct ath10k_htt *htt = &ar->htt; in ath10k_htt_rx_ring_refill() local
268 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_ring_refill()
269 ret = ath10k_htt_rx_ring_fill_n(htt, (htt->rx_ring.fill_level - in ath10k_htt_rx_ring_refill()
270 htt->rx_ring.fill_cnt)); in ath10k_htt_rx_ring_refill()
273 ath10k_htt_rx_ring_free(htt); in ath10k_htt_rx_ring_refill()
275 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_ring_refill()
280 void ath10k_htt_rx_free(struct ath10k_htt *htt) in ath10k_htt_rx_free() argument
282 del_timer_sync(&htt->rx_ring.refill_retry_timer); in ath10k_htt_rx_free()
284 skb_queue_purge(&htt->rx_msdus_q); in ath10k_htt_rx_free()
285 skb_queue_purge(&htt->rx_in_ord_compl_q); in ath10k_htt_rx_free()
286 skb_queue_purge(&htt->tx_fetch_ind_q); in ath10k_htt_rx_free()
288 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_free()
289 ath10k_htt_rx_ring_free(htt); in ath10k_htt_rx_free()
290 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_free()
292 dma_free_coherent(htt->ar->dev, in ath10k_htt_rx_free()
293 ath10k_htt_get_rx_ring_size(htt), in ath10k_htt_rx_free()
294 ath10k_htt_get_vaddr_ring(htt), in ath10k_htt_rx_free()
295 htt->rx_ring.base_paddr); in ath10k_htt_rx_free()
297 dma_free_coherent(htt->ar->dev, in ath10k_htt_rx_free()
298 sizeof(*htt->rx_ring.alloc_idx.vaddr), in ath10k_htt_rx_free()
299 htt->rx_ring.alloc_idx.vaddr, in ath10k_htt_rx_free()
300 htt->rx_ring.alloc_idx.paddr); in ath10k_htt_rx_free()
302 kfree(htt->rx_ring.netbufs_ring); in ath10k_htt_rx_free()
305 static inline struct sk_buff *ath10k_htt_rx_netbuf_pop(struct ath10k_htt *htt) in ath10k_htt_rx_netbuf_pop() argument
307 struct ath10k *ar = htt->ar; in ath10k_htt_rx_netbuf_pop()
311 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_netbuf_pop()
313 if (htt->rx_ring.fill_cnt == 0) { in ath10k_htt_rx_netbuf_pop()
318 idx = htt->rx_ring.sw_rd_idx.msdu_payld; in ath10k_htt_rx_netbuf_pop()
319 msdu = htt->rx_ring.netbufs_ring[idx]; in ath10k_htt_rx_netbuf_pop()
320 htt->rx_ring.netbufs_ring[idx] = NULL; in ath10k_htt_rx_netbuf_pop()
321 ath10k_htt_reset_paddrs_ring(htt, idx); in ath10k_htt_rx_netbuf_pop()
324 idx &= htt->rx_ring.size_mask; in ath10k_htt_rx_netbuf_pop()
325 htt->rx_ring.sw_rd_idx.msdu_payld = idx; in ath10k_htt_rx_netbuf_pop()
326 htt->rx_ring.fill_cnt--; in ath10k_htt_rx_netbuf_pop()
328 dma_unmap_single(htt->ar->dev, in ath10k_htt_rx_netbuf_pop()
339 static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt, in ath10k_htt_rx_amsdu_pop() argument
342 struct ath10k *ar = htt->ar; in ath10k_htt_rx_amsdu_pop()
347 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_amsdu_pop()
352 msdu = ath10k_htt_rx_netbuf_pop(htt); in ath10k_htt_rx_amsdu_pop()
398 msdu = ath10k_htt_rx_netbuf_pop(htt); in ath10k_htt_rx_amsdu_pop()
440 static struct sk_buff *ath10k_htt_rx_pop_paddr(struct ath10k_htt *htt, in ath10k_htt_rx_pop_paddr() argument
443 struct ath10k *ar = htt->ar; in ath10k_htt_rx_pop_paddr()
447 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_pop_paddr()
455 htt->rx_ring.fill_cnt--; in ath10k_htt_rx_pop_paddr()
457 dma_unmap_single(htt->ar->dev, rxcb->paddr, in ath10k_htt_rx_pop_paddr()
466 static int ath10k_htt_rx_pop_paddr32_list(struct ath10k_htt *htt, in ath10k_htt_rx_pop_paddr32_list() argument
470 struct ath10k *ar = htt->ar; in ath10k_htt_rx_pop_paddr32_list()
478 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_pop_paddr32_list()
486 msdu = ath10k_htt_rx_pop_paddr(htt, paddr); in ath10k_htt_rx_pop_paddr32_list()
505 ath10k_warn(htt->ar, "tried to pop an incomplete frame, oops!\n"); in ath10k_htt_rx_pop_paddr32_list()
516 static int ath10k_htt_rx_pop_paddr64_list(struct ath10k_htt *htt, in ath10k_htt_rx_pop_paddr64_list() argument
520 struct ath10k *ar = htt->ar; in ath10k_htt_rx_pop_paddr64_list()
528 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_pop_paddr64_list()
535 msdu = ath10k_htt_rx_pop_paddr(htt, paddr); in ath10k_htt_rx_pop_paddr64_list()
554 ath10k_warn(htt->ar, "tried to pop an incomplete frame, oops!\n"); in ath10k_htt_rx_pop_paddr64_list()
565 int ath10k_htt_rx_alloc(struct ath10k_htt *htt) in ath10k_htt_rx_alloc() argument
567 struct ath10k *ar = htt->ar; in ath10k_htt_rx_alloc()
571 struct timer_list *timer = &htt->rx_ring.refill_retry_timer; in ath10k_htt_rx_alloc()
573 htt->rx_confused = false; in ath10k_htt_rx_alloc()
578 htt->rx_ring.size = HTT_RX_RING_SIZE; in ath10k_htt_rx_alloc()
579 htt->rx_ring.size_mask = htt->rx_ring.size - 1; in ath10k_htt_rx_alloc()
580 htt->rx_ring.fill_level = ar->hw_params.rx_ring_fill_level; in ath10k_htt_rx_alloc()
582 if (!is_power_of_2(htt->rx_ring.size)) { in ath10k_htt_rx_alloc()
587 htt->rx_ring.netbufs_ring = in ath10k_htt_rx_alloc()
588 kcalloc(htt->rx_ring.size, sizeof(struct sk_buff *), in ath10k_htt_rx_alloc()
590 if (!htt->rx_ring.netbufs_ring) in ath10k_htt_rx_alloc()
593 size = ath10k_htt_get_rx_ring_size(htt); in ath10k_htt_rx_alloc()
595 vaddr_ring = dma_alloc_coherent(htt->ar->dev, size, &paddr, GFP_KERNEL); in ath10k_htt_rx_alloc()
599 ath10k_htt_config_paddrs_ring(htt, vaddr_ring); in ath10k_htt_rx_alloc()
600 htt->rx_ring.base_paddr = paddr; in ath10k_htt_rx_alloc()
602 vaddr = dma_alloc_coherent(htt->ar->dev, in ath10k_htt_rx_alloc()
603 sizeof(*htt->rx_ring.alloc_idx.vaddr), in ath10k_htt_rx_alloc()
608 htt->rx_ring.alloc_idx.vaddr = vaddr; in ath10k_htt_rx_alloc()
609 htt->rx_ring.alloc_idx.paddr = paddr; in ath10k_htt_rx_alloc()
610 htt->rx_ring.sw_rd_idx.msdu_payld = htt->rx_ring.size_mask; in ath10k_htt_rx_alloc()
611 *htt->rx_ring.alloc_idx.vaddr = 0; in ath10k_htt_rx_alloc()
616 spin_lock_init(&htt->rx_ring.lock); in ath10k_htt_rx_alloc()
618 htt->rx_ring.fill_cnt = 0; in ath10k_htt_rx_alloc()
619 htt->rx_ring.sw_rd_idx.msdu_payld = 0; in ath10k_htt_rx_alloc()
620 hash_init(htt->rx_ring.skb_table); in ath10k_htt_rx_alloc()
622 skb_queue_head_init(&htt->rx_msdus_q); in ath10k_htt_rx_alloc()
623 skb_queue_head_init(&htt->rx_in_ord_compl_q); in ath10k_htt_rx_alloc()
624 skb_queue_head_init(&htt->tx_fetch_ind_q); in ath10k_htt_rx_alloc()
625 atomic_set(&htt->num_mpdus_ready, 0); in ath10k_htt_rx_alloc()
628 htt->rx_ring.size, htt->rx_ring.fill_level); in ath10k_htt_rx_alloc()
632 dma_free_coherent(htt->ar->dev, in ath10k_htt_rx_alloc()
633 ath10k_htt_get_rx_ring_size(htt), in ath10k_htt_rx_alloc()
635 htt->rx_ring.base_paddr); in ath10k_htt_rx_alloc()
637 kfree(htt->rx_ring.netbufs_ring); in ath10k_htt_rx_alloc()
1095 skb_queue_tail(&ar->htt.rx_msdus_q, skb); in ath10k_htt_rx_h_queue_msdu()
1796 static int ath10k_htt_rx_handle_amsdu(struct ath10k_htt *htt) in ath10k_htt_rx_handle_amsdu() argument
1798 struct ath10k *ar = htt->ar; in ath10k_htt_rx_handle_amsdu()
1799 struct ieee80211_rx_status *rx_status = &htt->rx_status; in ath10k_htt_rx_handle_amsdu()
1811 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_handle_amsdu()
1812 if (htt->rx_confused) { in ath10k_htt_rx_handle_amsdu()
1813 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_handle_amsdu()
1816 ret = ath10k_htt_rx_amsdu_pop(htt, &amsdu); in ath10k_htt_rx_handle_amsdu()
1817 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_handle_amsdu()
1825 htt->rx_confused = true; in ath10k_htt_rx_handle_amsdu()
1849 static void ath10k_htt_rx_proc_rx_ind(struct ath10k_htt *htt, in ath10k_htt_rx_proc_rx_ind() argument
1852 struct ath10k *ar = htt->ar; in ath10k_htt_rx_proc_rx_ind()
1874 atomic_add(mpdu_count, &htt->num_mpdus_ready); in ath10k_htt_rx_proc_rx_ind()
1883 struct ath10k_htt *htt = &ar->htt; in ath10k_htt_rx_tx_compl_ind() local
1923 if (!kfifo_put(&htt->txdone_fifo, tx_done)) { in ath10k_htt_rx_tx_compl_ind()
1926 ath10k_txrx_tx_unref(htt, &tx_done); in ath10k_htt_rx_tx_compl_ind()
2065 struct ath10k_htt *htt = &ar->htt; in ath10k_htt_rx_h_rx_offload() local
2066 struct ieee80211_rx_status *status = &htt->rx_status; in ath10k_htt_rx_h_rx_offload()
2114 struct ath10k_htt *htt = &ar->htt; in ath10k_htt_rx_in_ord_ind() local
2116 struct ieee80211_rx_status *status = &htt->rx_status; in ath10k_htt_rx_in_ord_ind()
2127 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_in_ord_ind()
2129 if (htt->rx_confused) in ath10k_htt_rx_in_ord_ind()
2157 ret = ath10k_htt_rx_pop_paddr64_list(htt, &resp->rx_in_ord_ind, in ath10k_htt_rx_in_ord_ind()
2160 ret = ath10k_htt_rx_pop_paddr32_list(htt, &resp->rx_in_ord_ind, in ath10k_htt_rx_in_ord_ind()
2165 htt->rx_confused = true; in ath10k_htt_rx_in_ord_ind()
2197 htt->rx_confused = true; in ath10k_htt_rx_in_ord_ind()
2267 if (!ar->htt.tx_q_state.enabled) { in ath10k_htt_rx_tx_fetch_ind()
2272 if (ar->htt.tx_q_state.mode == HTT_TX_MODE_SWITCH_PUSH) { in ath10k_htt_rx_tx_fetch_ind()
2291 if (unlikely(peer_id >= ar->htt.tx_q_state.num_peers) || in ath10k_htt_rx_tx_fetch_ind()
2292 unlikely(tid >= ar->htt.tx_q_state.num_tids)) { in ath10k_htt_rx_tx_fetch_ind()
2436 ar->htt.tx_q_state.enabled = enable; in ath10k_htt_rx_tx_mode_switch_ind()
2437 ar->htt.tx_q_state.mode = mode; in ath10k_htt_rx_tx_mode_switch_ind()
2438 ar->htt.tx_q_state.num_push_allowed = threshold; in ath10k_htt_rx_tx_mode_switch_ind()
2448 if (unlikely(peer_id >= ar->htt.tx_q_state.num_peers) || in ath10k_htt_rx_tx_mode_switch_ind()
2449 unlikely(tid >= ar->htt.tx_q_state.num_tids)) { in ath10k_htt_rx_tx_mode_switch_ind()
2469 spin_lock_bh(&ar->htt.tx_lock); in ath10k_htt_rx_tx_mode_switch_ind()
2472 spin_unlock_bh(&ar->htt.tx_lock); in ath10k_htt_rx_tx_mode_switch_ind()
2679 struct ath10k_htt *htt = &ar->htt; in ath10k_htt_t2h_msg_handler() local
2690 if (resp->hdr.msg_type >= ar->htt.t2h_msg_types_max) { in ath10k_htt_t2h_msg_handler()
2692 resp->hdr.msg_type, ar->htt.t2h_msg_types_max); in ath10k_htt_t2h_msg_handler()
2695 type = ar->htt.t2h_msg_types[resp->hdr.msg_type]; in ath10k_htt_t2h_msg_handler()
2699 htt->target_version_major = resp->ver_resp.major; in ath10k_htt_t2h_msg_handler()
2700 htt->target_version_minor = resp->ver_resp.minor; in ath10k_htt_t2h_msg_handler()
2701 complete(&htt->target_version_received); in ath10k_htt_t2h_msg_handler()
2705 ath10k_htt_rx_proc_rx_ind(htt, &resp->rx_ind); in ath10k_htt_t2h_msg_handler()
2713 ath10k_peer_map_event(htt, &ev); in ath10k_htt_t2h_msg_handler()
2720 ath10k_peer_unmap_event(htt, &ev); in ath10k_htt_t2h_msg_handler()
2750 status = ath10k_txrx_tx_unref(htt, &tx_done); in ath10k_htt_t2h_msg_handler()
2752 spin_lock_bh(&htt->tx_lock); in ath10k_htt_t2h_msg_handler()
2753 ath10k_htt_tx_mgmt_dec_pending(htt); in ath10k_htt_t2h_msg_handler()
2754 spin_unlock_bh(&htt->tx_lock); in ath10k_htt_t2h_msg_handler()
2759 ath10k_htt_rx_tx_compl_ind(htt->ar, skb); in ath10k_htt_t2h_msg_handler()
2762 struct ath10k *ar = htt->ar; in ath10k_htt_t2h_msg_handler()
2776 atomic_inc(&htt->num_mpdus_ready); in ath10k_htt_t2h_msg_handler()
2816 skb_queue_tail(&htt->rx_in_ord_compl_q, skb); in ath10k_htt_t2h_msg_handler()
2840 skb_queue_tail(&htt->tx_fetch_ind_q, tx_fetch_ind); in ath10k_htt_t2h_msg_handler()
2877 if (skb_queue_empty(&ar->htt.rx_msdus_q)) in ath10k_htt_rx_deliver_msdu()
2880 skb = skb_dequeue(&ar->htt.rx_msdus_q); in ath10k_htt_rx_deliver_msdu()
2892 struct ath10k_htt *htt = &ar->htt; in ath10k_htt_txrx_compl_task() local
2911 while ((skb = skb_dequeue(&htt->rx_in_ord_compl_q))) { in ath10k_htt_txrx_compl_task()
2912 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_txrx_compl_task()
2914 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_txrx_compl_task()
2923 while (atomic_read(&htt->num_mpdus_ready)) { in ath10k_htt_txrx_compl_task()
2924 ret = ath10k_htt_rx_handle_amsdu(htt); in ath10k_htt_txrx_compl_task()
2929 atomic_dec(&htt->num_mpdus_ready); in ath10k_htt_txrx_compl_task()
2940 if ((quota < budget) && !kfifo_is_empty(&htt->txdone_fifo)) in ath10k_htt_txrx_compl_task()
2948 while (kfifo_get(&htt->txdone_fifo, &tx_done)) in ath10k_htt_txrx_compl_task()
2949 ath10k_txrx_tx_unref(htt, &tx_done); in ath10k_htt_txrx_compl_task()
2953 spin_lock_irqsave(&htt->tx_fetch_ind_q.lock, flags); in ath10k_htt_txrx_compl_task()
2954 skb_queue_splice_init(&htt->tx_fetch_ind_q, &tx_ind_q); in ath10k_htt_txrx_compl_task()
2955 spin_unlock_irqrestore(&htt->tx_fetch_ind_q.lock, flags); in ath10k_htt_txrx_compl_task()
2963 ath10k_htt_rx_msdu_buff_replenish(htt); in ath10k_htt_txrx_compl_task()
2989 void ath10k_htt_set_rx_ops(struct ath10k_htt *htt) in ath10k_htt_set_rx_ops() argument
2991 struct ath10k *ar = htt->ar; in ath10k_htt_set_rx_ops()
2994 htt->rx_ops = &htt_rx_ops_64; in ath10k_htt_set_rx_ops()
2996 htt->rx_ops = &htt_rx_ops_32; in ath10k_htt_set_rx_ops()