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()
274 static int wcn36xx_dxe_fill_skb(struct device *dev, struct wcn36xx_dxe_ctl *ctl) in wcn36xx_dxe_fill_skb() argument
276 struct wcn36xx_dxe_desc *dxe = ctl->desc; in wcn36xx_dxe_fill_skb()
287 ctl->skb = skb; in wcn36xx_dxe_fill_skb()
349 struct wcn36xx_dxe_ctl *ctl; in reap_tx_dxes() local
359 ctl = ch->tail_blk_ctl; in reap_tx_dxes()
361 if (ctl->desc->ctrl & WCN36XX_DXE_CTRL_VALID_MASK) in reap_tx_dxes()
363 if (ctl->skb) { in reap_tx_dxes()
364 dma_unmap_single(wcn->dev, ctl->desc->src_addr_l, in reap_tx_dxes()
365 ctl->skb->len, DMA_TO_DEVICE); in reap_tx_dxes()
366 info = IEEE80211_SKB_CB(ctl->skb); in reap_tx_dxes()
369 ieee80211_free_txskb(wcn->hw, ctl->skb); in reap_tx_dxes()
371 spin_lock(&ctl->skb_lock); in reap_tx_dxes()
376 spin_unlock(&ctl->skb_lock); in reap_tx_dxes()
378 ctl->skb = NULL; in reap_tx_dxes()
380 ctl = ctl->next; in reap_tx_dxes()
381 } while (ctl != ch->head_blk_ctl && in reap_tx_dxes()
382 !(ctl->desc->ctrl & WCN36XX_DXE_CTRL_VALID_MASK)); in reap_tx_dxes()
384 ch->tail_blk_ctl = ctl; in reap_tx_dxes()
473 struct wcn36xx_dxe_ctl *ctl = ch->head_blk_ctl; in wcn36xx_rx_handle_packets() local
474 struct wcn36xx_dxe_desc *dxe = ctl->desc; in wcn36xx_rx_handle_packets()
479 skb = ctl->skb; in wcn36xx_rx_handle_packets()
481 wcn36xx_dxe_fill_skb(wcn->dev, ctl); in wcn36xx_rx_handle_packets()
501 ctl = ctl->next; in wcn36xx_rx_handle_packets()
502 dxe = ctl->desc; in wcn36xx_rx_handle_packets()
505 ch->head_blk_ctl = ctl; in wcn36xx_rx_handle_packets()
599 struct wcn36xx_dxe_ctl *ctl = NULL; in wcn36xx_dxe_tx_frame() local
608 ctl = ch->head_blk_ctl; in wcn36xx_dxe_tx_frame()
610 spin_lock(&ctl->next->skb_lock); in wcn36xx_dxe_tx_frame()
617 if (NULL != ctl->next->skb) { in wcn36xx_dxe_tx_frame()
620 spin_unlock(&ctl->next->skb_lock); in wcn36xx_dxe_tx_frame()
624 spin_unlock(&ctl->next->skb_lock); in wcn36xx_dxe_tx_frame()
626 ctl->skb = NULL; in wcn36xx_dxe_tx_frame()
627 desc = ctl->desc; in wcn36xx_dxe_tx_frame()
630 desc->src_addr_l = ctl->bd_phy_addr; in wcn36xx_dxe_tx_frame()
641 "BD >>> ", (char *)ctl->bd_cpu_addr, in wcn36xx_dxe_tx_frame()
645 ctl = ctl->next; in wcn36xx_dxe_tx_frame()
646 ctl->skb = skb; in wcn36xx_dxe_tx_frame()
647 desc = ctl->desc; in wcn36xx_dxe_tx_frame()
648 if (ctl->bd_cpu_addr) { in wcn36xx_dxe_tx_frame()
655 ctl->skb->data, in wcn36xx_dxe_tx_frame()
656 ctl->skb->len, in wcn36xx_dxe_tx_frame()
660 desc->fr_len = ctl->skb->len; in wcn36xx_dxe_tx_frame()
668 (char *)ctl->skb->data, ctl->skb->len); in wcn36xx_dxe_tx_frame()
671 ch->head_blk_ctl = ctl->next; in wcn36xx_dxe_tx_frame()