Lines Matching refs:ctl
66 struct wcn36xx_dxe_ctl *ctl = ch->head_blk_ctl, *next; in wcn36xx_dxe_free_ctl_block() local
69 for (i = 0; i < ch->desc_num && ctl; i++) { in wcn36xx_dxe_free_ctl_block()
70 next = ctl->next; in wcn36xx_dxe_free_ctl_block()
71 kfree(ctl); in wcn36xx_dxe_free_ctl_block()
72 ctl = next; in wcn36xx_dxe_free_ctl_block()
273 static int wcn36xx_dxe_fill_skb(struct wcn36xx_dxe_ctl *ctl) in wcn36xx_dxe_fill_skb() argument
275 struct wcn36xx_dxe_desc *dxe = ctl->desc; in wcn36xx_dxe_fill_skb()
286 ctl->skb = skb; in wcn36xx_dxe_fill_skb()
348 struct wcn36xx_dxe_ctl *ctl = ch->tail_blk_ctl; in reap_tx_dxes() local
358 if (ctl->desc->ctrl & WCN36XX_DXE_CTRL_VALID_MASK) in reap_tx_dxes()
360 if (ctl->skb) { in reap_tx_dxes()
361 dma_unmap_single(NULL, ctl->desc->src_addr_l, in reap_tx_dxes()
362 ctl->skb->len, DMA_TO_DEVICE); in reap_tx_dxes()
363 info = IEEE80211_SKB_CB(ctl->skb); in reap_tx_dxes()
366 ieee80211_free_txskb(wcn->hw, ctl->skb); in reap_tx_dxes()
368 spin_lock_irqsave(&ctl->skb_lock, flags); in reap_tx_dxes()
373 spin_unlock_irqrestore(&ctl->skb_lock, flags); in reap_tx_dxes()
375 ctl->skb = NULL; in reap_tx_dxes()
377 ctl = ctl->next; in reap_tx_dxes()
378 } while (ctl != ch->head_blk_ctl && in reap_tx_dxes()
379 !(ctl->desc->ctrl & WCN36XX_DXE_CTRL_VALID_MASK)); in reap_tx_dxes()
381 ch->tail_blk_ctl = ctl; in reap_tx_dxes()
469 struct wcn36xx_dxe_ctl *ctl = ch->head_blk_ctl; in wcn36xx_rx_handle_packets() local
470 struct wcn36xx_dxe_desc *dxe = ctl->desc; in wcn36xx_rx_handle_packets()
475 skb = ctl->skb; in wcn36xx_rx_handle_packets()
477 wcn36xx_dxe_fill_skb(ctl); in wcn36xx_rx_handle_packets()
497 ctl = ctl->next; in wcn36xx_rx_handle_packets()
498 dxe = ctl->desc; in wcn36xx_rx_handle_packets()
501 ch->head_blk_ctl = ctl; in wcn36xx_rx_handle_packets()
595 struct wcn36xx_dxe_ctl *ctl = NULL; in wcn36xx_dxe_tx_frame() local
602 ctl = ch->head_blk_ctl; in wcn36xx_dxe_tx_frame()
604 spin_lock_irqsave(&ctl->next->skb_lock, flags); in wcn36xx_dxe_tx_frame()
611 if (NULL != ctl->next->skb) { in wcn36xx_dxe_tx_frame()
614 spin_unlock_irqrestore(&ctl->next->skb_lock, flags); in wcn36xx_dxe_tx_frame()
617 spin_unlock_irqrestore(&ctl->next->skb_lock, flags); in wcn36xx_dxe_tx_frame()
619 ctl->skb = NULL; in wcn36xx_dxe_tx_frame()
620 desc = ctl->desc; in wcn36xx_dxe_tx_frame()
623 desc->src_addr_l = ctl->bd_phy_addr; in wcn36xx_dxe_tx_frame()
634 "BD >>> ", (char *)ctl->bd_cpu_addr, in wcn36xx_dxe_tx_frame()
638 ctl = ctl->next; in wcn36xx_dxe_tx_frame()
639 ctl->skb = skb; in wcn36xx_dxe_tx_frame()
640 desc = ctl->desc; in wcn36xx_dxe_tx_frame()
641 if (ctl->bd_cpu_addr) { in wcn36xx_dxe_tx_frame()
647 ctl->skb->data, in wcn36xx_dxe_tx_frame()
648 ctl->skb->len, in wcn36xx_dxe_tx_frame()
652 desc->fr_len = ctl->skb->len; in wcn36xx_dxe_tx_frame()
660 (char *)ctl->skb->data, ctl->skb->len); in wcn36xx_dxe_tx_frame()
663 ch->head_blk_ctl = ctl->next; in wcn36xx_dxe_tx_frame()