Lines Matching refs:ch
31 struct wcn36xx_dxe_ch *ch = is_low ? in wcn36xx_dxe_get_next_bd() local
35 return ch->head_blk_ctl->bd_cpu_addr; in wcn36xx_dxe_get_next_bd()
64 static void wcn36xx_dxe_free_ctl_block(struct wcn36xx_dxe_ch *ch) in wcn36xx_dxe_free_ctl_block() argument
66 struct wcn36xx_dxe_ctl *ctl = ch->head_blk_ctl, *next; in wcn36xx_dxe_free_ctl_block()
69 for (i = 0; i < ch->desc_num && ctl; i++) { in wcn36xx_dxe_free_ctl_block()
76 static int wcn36xx_dxe_allocate_ctl_block(struct wcn36xx_dxe_ch *ch) in wcn36xx_dxe_allocate_ctl_block() argument
82 spin_lock_init(&ch->lock); in wcn36xx_dxe_allocate_ctl_block()
83 for (i = 0; i < ch->desc_num; i++) { in wcn36xx_dxe_allocate_ctl_block()
91 ch->head_blk_ctl = cur_ctl; in wcn36xx_dxe_allocate_ctl_block()
92 ch->tail_blk_ctl = cur_ctl; in wcn36xx_dxe_allocate_ctl_block()
93 } else if (ch->desc_num - 1 == i) { in wcn36xx_dxe_allocate_ctl_block()
95 cur_ctl->next = ch->head_blk_ctl; in wcn36xx_dxe_allocate_ctl_block()
105 wcn36xx_dxe_free_ctl_block(ch); in wcn36xx_dxe_allocate_ctl_block()
234 static void wcn36xx_dxe_init_tx_bd(struct wcn36xx_dxe_ch *ch, in wcn36xx_dxe_init_tx_bd() argument
240 struct wcn36xx_dxe_ctl *cur = ch->head_blk_ctl; in wcn36xx_dxe_init_tx_bd()
242 for (i = 0; i < ch->desc_num; i++) { in wcn36xx_dxe_init_tx_bd()
347 static void reap_tx_dxes(struct wcn36xx *wcn, struct wcn36xx_dxe_ch *ch) in reap_tx_dxes() argument
358 spin_lock_irqsave(&ch->lock, flags); in reap_tx_dxes()
359 ctl = ch->tail_blk_ctl; in reap_tx_dxes()
381 } while (ctl != ch->head_blk_ctl && in reap_tx_dxes()
384 ch->tail_blk_ctl = ctl; in reap_tx_dxes()
385 spin_unlock_irqrestore(&ch->lock, flags); in reap_tx_dxes()
471 struct wcn36xx_dxe_ch *ch) in wcn36xx_rx_handle_packets() argument
473 struct wcn36xx_dxe_ctl *ctl = ch->head_blk_ctl; in wcn36xx_rx_handle_packets()
483 switch (ch->ch_type) { in wcn36xx_rx_handle_packets()
505 ch->head_blk_ctl = ctl; in wcn36xx_rx_handle_packets()
601 struct wcn36xx_dxe_ch *ch = NULL; in wcn36xx_dxe_tx_frame() local
605 ch = is_low ? &wcn->dxe_tx_l_ch : &wcn->dxe_tx_h_ch; in wcn36xx_dxe_tx_frame()
607 spin_lock_irqsave(&ch->lock, flags); in wcn36xx_dxe_tx_frame()
608 ctl = ch->head_blk_ctl; in wcn36xx_dxe_tx_frame()
621 spin_unlock_irqrestore(&ch->lock, flags); in wcn36xx_dxe_tx_frame()
632 desc->dst_addr_l = ch->dxe_wq; in wcn36xx_dxe_tx_frame()
634 desc->ctrl = ch->ctrl_bd; in wcn36xx_dxe_tx_frame()
659 desc->dst_addr_l = ch->dxe_wq; in wcn36xx_dxe_tx_frame()
663 desc->ctrl = ch->ctrl_skb; in wcn36xx_dxe_tx_frame()
671 ch->head_blk_ctl = ctl->next; in wcn36xx_dxe_tx_frame()
687 ch->reg_ctrl, ch->def_ctrl); in wcn36xx_dxe_tx_frame()
692 spin_unlock_irqrestore(&ch->lock, flags); in wcn36xx_dxe_tx_frame()