Lines Matching refs:rx_ring
42 hash_for_each_possible(ar->htt.rx_ring.skb_table, rxcb, hlist, paddr) in ath10k_htt_rx_find_skb_paddr()
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()
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()
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()
101 idx = __le32_to_cpu(*htt->rx_ring.alloc_idx.vaddr); in __ath10k_htt_rx_ring_fill_n()
130 htt->rx_ring.netbufs_ring[idx] = skb; in __ath10k_htt_rx_ring_fill_n()
131 htt->rx_ring.paddrs_ring[idx] = __cpu_to_le32(paddr); in __ath10k_htt_rx_ring_fill_n()
132 htt->rx_ring.fill_cnt++; in __ath10k_htt_rx_ring_fill_n()
134 if (htt->rx_ring.in_ord_rx) { in __ath10k_htt_rx_ring_fill_n()
135 hash_add(htt->rx_ring.skb_table, in __ath10k_htt_rx_ring_fill_n()
142 idx &= htt->rx_ring.size_mask; in __ath10k_htt_rx_ring_fill_n()
151 *htt->rx_ring.alloc_idx.vaddr = __cpu_to_le32(idx); in __ath10k_htt_rx_ring_fill_n()
157 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_ring_fill_n()
180 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_msdu_buff_replenish()
181 num_deficit = htt->rx_ring.fill_level - htt->rx_ring.fill_cnt; in ath10k_htt_rx_msdu_buff_replenish()
192 mod_timer(&htt->rx_ring.refill_retry_timer, jiffies + in ath10k_htt_rx_msdu_buff_replenish()
197 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_msdu_buff_replenish()
212 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_ring_refill()
213 ret = ath10k_htt_rx_ring_fill_n(htt, (htt->rx_ring.fill_level - in ath10k_htt_rx_ring_refill()
214 htt->rx_ring.fill_cnt)); in ath10k_htt_rx_ring_refill()
215 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_ring_refill()
225 del_timer_sync(&htt->rx_ring.refill_retry_timer); in ath10k_htt_rx_free()
236 (htt->rx_ring.size * in ath10k_htt_rx_free()
237 sizeof(htt->rx_ring.paddrs_ring)), in ath10k_htt_rx_free()
238 htt->rx_ring.paddrs_ring, in ath10k_htt_rx_free()
239 htt->rx_ring.base_paddr); in ath10k_htt_rx_free()
242 sizeof(*htt->rx_ring.alloc_idx.vaddr), in ath10k_htt_rx_free()
243 htt->rx_ring.alloc_idx.vaddr, in ath10k_htt_rx_free()
244 htt->rx_ring.alloc_idx.paddr); in ath10k_htt_rx_free()
246 kfree(htt->rx_ring.netbufs_ring); in ath10k_htt_rx_free()
255 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_netbuf_pop()
257 if (htt->rx_ring.fill_cnt == 0) { in ath10k_htt_rx_netbuf_pop()
262 idx = htt->rx_ring.sw_rd_idx.msdu_payld; in ath10k_htt_rx_netbuf_pop()
263 msdu = htt->rx_ring.netbufs_ring[idx]; in ath10k_htt_rx_netbuf_pop()
264 htt->rx_ring.netbufs_ring[idx] = NULL; in ath10k_htt_rx_netbuf_pop()
265 htt->rx_ring.paddrs_ring[idx] = 0; in ath10k_htt_rx_netbuf_pop()
268 idx &= htt->rx_ring.size_mask; in ath10k_htt_rx_netbuf_pop()
269 htt->rx_ring.sw_rd_idx.msdu_payld = idx; in ath10k_htt_rx_netbuf_pop()
270 htt->rx_ring.fill_cnt--; in ath10k_htt_rx_netbuf_pop()
292 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_amsdu_pop()
440 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_pop_paddr()
448 htt->rx_ring.fill_cnt--; in ath10k_htt_rx_pop_paddr()
471 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_pop_paddr_list()
515 struct timer_list *timer = &htt->rx_ring.refill_retry_timer; in ath10k_htt_rx_alloc()
522 htt->rx_ring.size = HTT_RX_RING_SIZE; in ath10k_htt_rx_alloc()
523 htt->rx_ring.size_mask = htt->rx_ring.size - 1; in ath10k_htt_rx_alloc()
524 htt->rx_ring.fill_level = HTT_RX_RING_FILL_LEVEL; in ath10k_htt_rx_alloc()
526 if (!is_power_of_2(htt->rx_ring.size)) { in ath10k_htt_rx_alloc()
531 htt->rx_ring.netbufs_ring = in ath10k_htt_rx_alloc()
532 kzalloc(htt->rx_ring.size * sizeof(struct sk_buff *), in ath10k_htt_rx_alloc()
534 if (!htt->rx_ring.netbufs_ring) in ath10k_htt_rx_alloc()
537 size = htt->rx_ring.size * sizeof(htt->rx_ring.paddrs_ring); in ath10k_htt_rx_alloc()
543 htt->rx_ring.paddrs_ring = vaddr; in ath10k_htt_rx_alloc()
544 htt->rx_ring.base_paddr = paddr; in ath10k_htt_rx_alloc()
547 sizeof(*htt->rx_ring.alloc_idx.vaddr), in ath10k_htt_rx_alloc()
552 htt->rx_ring.alloc_idx.vaddr = vaddr; in ath10k_htt_rx_alloc()
553 htt->rx_ring.alloc_idx.paddr = paddr; in ath10k_htt_rx_alloc()
554 htt->rx_ring.sw_rd_idx.msdu_payld = htt->rx_ring.size_mask; in ath10k_htt_rx_alloc()
555 *htt->rx_ring.alloc_idx.vaddr = 0; in ath10k_htt_rx_alloc()
560 spin_lock_init(&htt->rx_ring.lock); in ath10k_htt_rx_alloc()
562 htt->rx_ring.fill_cnt = 0; in ath10k_htt_rx_alloc()
563 htt->rx_ring.sw_rd_idx.msdu_payld = 0; in ath10k_htt_rx_alloc()
564 hash_init(htt->rx_ring.skb_table); in ath10k_htt_rx_alloc()
577 htt->rx_ring.size, htt->rx_ring.fill_level); in ath10k_htt_rx_alloc()
582 (htt->rx_ring.size * in ath10k_htt_rx_alloc()
583 sizeof(htt->rx_ring.paddrs_ring)), in ath10k_htt_rx_alloc()
584 htt->rx_ring.paddrs_ring, in ath10k_htt_rx_alloc()
585 htt->rx_ring.base_paddr); in ath10k_htt_rx_alloc()
587 kfree(htt->rx_ring.netbufs_ring); in ath10k_htt_rx_alloc()
1573 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_handler()
1632 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_frag_handler()
1635 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_rx_frag_handler()
1900 lockdep_assert_held(&htt->rx_ring.lock); in ath10k_htt_rx_in_ord_ind()
2001 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_t2h_msg_handler()
2003 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_t2h_msg_handler()
2101 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_t2h_msg_handler()
2103 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_t2h_msg_handler()
2142 spin_lock_bh(&htt->rx_ring.lock); in ath10k_htt_txrx_compl_task()
2153 spin_unlock_bh(&htt->rx_ring.lock); in ath10k_htt_txrx_compl_task()