Lines Matching defs:ctl
59 struct wcn36xx_dxe_ctl *ctl = ch->head_blk_ctl, *next;
62 for (i = 0; i < ch->desc_num && ctl; i++) {
63 next = ctl->next;
64 kfree(ctl);
65 ctl = next;
291 struct wcn36xx_dxe_ctl *ctl,
294 struct wcn36xx_dxe_desc *dxe = ctl->desc;
310 ctl->skb = skb;
401 struct wcn36xx_dxe_ctl *ctl;
411 ctl = ch->tail_blk_ctl;
413 if (READ_ONCE(ctl->desc->ctrl) & WCN36xx_DXE_CTRL_VLD)
416 if (ctl->skb &&
417 READ_ONCE(ctl->desc->ctrl) & WCN36xx_DXE_CTRL_EOP) {
418 dma_unmap_single(wcn->dev, ctl->desc->src_addr_l,
419 ctl->skb->len, DMA_TO_DEVICE);
420 info = IEEE80211_SKB_CB(ctl->skb);
424 ieee80211_tx_status_irqsafe(wcn->hw, ctl->skb);
430 wcn->tx_ack_skb = ctl->skb; /* Tracking ref */
436 ieee80211_free_txskb(wcn->hw, ctl->skb);
444 ctl->skb = NULL;
446 ctl = ctl->next;
447 } while (ctl != ch->head_blk_ctl);
449 ch->tail_blk_ctl = ctl;
587 struct wcn36xx_dxe_ctl *ctl;
620 ctl = ch->head_blk_ctl;
621 dxe = ctl->desc;
628 skb = ctl->skb;
630 ret = wcn36xx_dxe_fill_skb(wcn->dev, ctl, GFP_ATOMIC);
647 ctl = ctl->next;
648 dxe = ctl->desc;
652 ch->head_blk_ctl = ctl;