Lines Matching refs:vd
87 struct virt_dma_desc vd; /* Virtual descriptor */ member
147 container_of((_vd), struct pxad_desc_sw, vd)
583 static bool is_desc_completed(struct virt_dma_desc *vd) in is_desc_completed() argument
585 struct pxad_desc_sw *sw_desc = to_pxad_sw_desc(vd); in is_desc_completed()
604 struct virt_dma_desc *vd) in pxad_try_hotchain() argument
620 to_pxad_sw_desc(vd)->misaligned) in pxad_try_hotchain()
625 pxad_desc_chain(vd_last_issued, vd); in pxad_try_hotchain()
626 if (is_chan_running(chan) || is_desc_completed(vd)) in pxad_try_hotchain()
656 struct virt_dma_desc *vd, *tmp; in pxad_chan_handler() local
669 list_for_each_entry_safe(vd, tmp, &chan->vc.desc_issued, node) { in pxad_chan_handler()
670 vd_completed = is_desc_completed(vd); in pxad_chan_handler()
673 __func__, vd, vd->tx.cookie, vd_completed, in pxad_chan_handler()
675 last_started = vd->tx.cookie; in pxad_chan_handler()
676 if (to_pxad_sw_desc(vd)->cyclic) { in pxad_chan_handler()
677 vchan_cyclic_callback(vd); in pxad_chan_handler()
681 list_del(&vd->node); in pxad_chan_handler()
682 vchan_cookie_complete(vd); in pxad_chan_handler()
705 vd = list_first_entry(&chan->vc.desc_issued, in pxad_chan_handler()
707 pxad_launch_chan(chan, to_pxad_sw_desc(vd)); in pxad_chan_handler()
769 static void pxad_free_desc(struct virt_dma_desc *vd) in pxad_free_desc() argument
773 struct pxad_desc_sw *sw_desc = to_pxad_sw_desc(vd); in pxad_free_desc()
821 pxad_free_desc(&sw_desc->vd); in pxad_alloc_desc()
830 *vd = container_of(tx, struct virt_dma_desc, tx); in pxad_tx_submit() local
834 set_updater_desc(to_pxad_sw_desc(vd), tx->flags); in pxad_tx_submit()
839 if (list_empty(&vc->desc_submitted) && pxad_try_hotchain(vc, vd)) { in pxad_tx_submit()
840 list_move_tail(&vd->node, &vc->desc_issued); in pxad_tx_submit()
843 __func__, vd, cookie); in pxad_tx_submit()
859 if (chan->misaligned || !to_pxad_sw_desc(vd)->misaligned) in pxad_tx_submit()
860 pxad_desc_chain(vd_chained, vd); in pxad_tx_submit()
866 __func__, vd, cookie, vd_chained ? "cold" : "not"); in pxad_tx_submit()
867 list_move_tail(&vd->node, &vc->desc_submitted); in pxad_tx_submit()
868 chan->misaligned |= to_pxad_sw_desc(vd)->misaligned; in pxad_tx_submit()
898 pxad_tx_prep(struct virt_dma_chan *vc, struct virt_dma_desc *vd, in pxad_tx_prep() argument
904 INIT_LIST_HEAD(&vd->node); in pxad_tx_prep()
905 tx = vchan_tx_prep(vc, vd, tx_flags); in pxad_tx_prep()
909 vc, vd, vd->tx.cookie, in pxad_tx_prep()
1016 return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags); in pxad_prep_memcpy()
1066 return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags); in pxad_prep_slave_sg()
1119 return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags); in pxad_prep_dma_cyclic()
1138 struct virt_dma_desc *vd = NULL; in pxad_terminate_all() local
1149 list_for_each_entry(vd, &head, node) { in pxad_terminate_all()
1152 vd, vd->tx.cookie, is_desc_completed(vd)); in pxad_terminate_all()
1173 struct virt_dma_desc *vd = NULL; in pxad_residue() local
1190 vd = vchan_find_desc(&chan->vc, cookie); in pxad_residue()
1191 if (!vd) in pxad_residue()
1194 sw_desc = to_pxad_sw_desc(vd); in pxad_residue()
1207 if (is_desc_completed(vd)) in pxad_residue()
1242 __func__, vd, cookie, sw_desc, residue); in pxad_residue()