Lines Matching refs:vd
84 struct virt_dma_desc vd; /* Virtual descriptor */ member
143 container_of((_vd), struct pxad_desc_sw, vd)
534 static bool is_desc_completed(struct virt_dma_desc *vd) in is_desc_completed() argument
536 struct pxad_desc_sw *sw_desc = to_pxad_sw_desc(vd); in is_desc_completed()
555 struct virt_dma_desc *vd) in pxad_try_hotchain() argument
571 to_pxad_sw_desc(vd)->misaligned) in pxad_try_hotchain()
576 pxad_desc_chain(vd_last_issued, vd); in pxad_try_hotchain()
577 if (is_chan_running(chan) || is_desc_completed(vd)) in pxad_try_hotchain()
607 struct virt_dma_desc *vd, *tmp; in pxad_chan_handler() local
620 list_for_each_entry_safe(vd, tmp, &chan->vc.desc_issued, node) { in pxad_chan_handler()
621 vd_completed = is_desc_completed(vd); in pxad_chan_handler()
624 __func__, vd, vd->tx.cookie, vd_completed, in pxad_chan_handler()
626 last_started = vd->tx.cookie; in pxad_chan_handler()
627 if (to_pxad_sw_desc(vd)->cyclic) { in pxad_chan_handler()
628 vchan_cyclic_callback(vd); in pxad_chan_handler()
632 list_del(&vd->node); in pxad_chan_handler()
633 vchan_cookie_complete(vd); in pxad_chan_handler()
656 vd = list_first_entry(&chan->vc.desc_issued, in pxad_chan_handler()
658 pxad_launch_chan(chan, to_pxad_sw_desc(vd)); in pxad_chan_handler()
720 static void pxad_free_desc(struct virt_dma_desc *vd) in pxad_free_desc() argument
724 struct pxad_desc_sw *sw_desc = to_pxad_sw_desc(vd); in pxad_free_desc()
772 pxad_free_desc(&sw_desc->vd); in pxad_alloc_desc()
781 *vd = container_of(tx, struct virt_dma_desc, tx); in pxad_tx_submit() local
785 set_updater_desc(to_pxad_sw_desc(vd), tx->flags); in pxad_tx_submit()
790 if (list_empty(&vc->desc_submitted) && pxad_try_hotchain(vc, vd)) { in pxad_tx_submit()
791 list_move_tail(&vd->node, &vc->desc_issued); in pxad_tx_submit()
794 __func__, vd, cookie); in pxad_tx_submit()
810 if (chan->misaligned || !to_pxad_sw_desc(vd)->misaligned) in pxad_tx_submit()
811 pxad_desc_chain(vd_chained, vd); in pxad_tx_submit()
817 __func__, vd, cookie, vd_chained ? "cold" : "not"); in pxad_tx_submit()
818 list_move_tail(&vd->node, &vc->desc_submitted); in pxad_tx_submit()
819 chan->misaligned |= to_pxad_sw_desc(vd)->misaligned; in pxad_tx_submit()
849 pxad_tx_prep(struct virt_dma_chan *vc, struct virt_dma_desc *vd, in pxad_tx_prep() argument
855 INIT_LIST_HEAD(&vd->node); in pxad_tx_prep()
856 tx = vchan_tx_prep(vc, vd, tx_flags); in pxad_tx_prep()
860 vc, vd, vd->tx.cookie, in pxad_tx_prep()
960 return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags); in pxad_prep_memcpy()
1010 return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags); in pxad_prep_slave_sg()
1063 return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags); in pxad_prep_dma_cyclic()
1082 struct virt_dma_desc *vd = NULL; in pxad_terminate_all() local
1093 list_for_each_entry(vd, &head, node) { in pxad_terminate_all()
1096 vd, vd->tx.cookie, is_desc_completed(vd)); in pxad_terminate_all()
1117 struct virt_dma_desc *vd = NULL; in pxad_residue() local
1134 vd = vchan_find_desc(&chan->vc, cookie); in pxad_residue()
1135 if (!vd) in pxad_residue()
1138 sw_desc = to_pxad_sw_desc(vd); in pxad_residue()
1151 if (is_desc_completed(vd)) in pxad_residue()
1186 __func__, vd, cookie, sw_desc, residue); in pxad_residue()