Lines Matching refs:vc

106 	struct virt_dma_chan	vc;		/* Virtual channel */  member
139 container_of(dchan, struct pxad_chan, vc.chan)
151 dev_vdbg(&phy->vchan->vc.chan.dev->device, \
159 dev_vdbg(&phy->vchan->vc.chan.dev->device, \
166 dev_vdbg(&phy->vchan->vc.chan.dev->device, \
425 struct pxad_device *pdev = to_pxad_dev(pchan->vc.chan.device); in lookup_phy()
457 dev_dbg(&pchan->vc.chan.dev->device, in lookup_phy()
466 struct pxad_device *pdev = to_pxad_dev(chan->vc.chan.device); in pxad_free_phy()
471 dev_dbg(&chan->vc.chan.dev->device, in pxad_free_phy()
519 dev_dbg(&phy->vchan->vc.chan.dev->device, in phy_enable()
523 pdev = to_pxad_dev(phy->vchan->vc.chan.device); in phy_enable()
548 dev_dbg(&phy->vchan->vc.chan.dev->device, in phy_disable()
556 dev_dbg(&chan->vc.chan.dev->device, in pxad_launch_chan()
561 dev_dbg(&chan->vc.chan.dev->device, in pxad_launch_chan()
613 static bool pxad_try_hotchain(struct virt_dma_chan *vc, in pxad_try_hotchain() argument
617 struct pxad_chan *chan = to_pxad_chan(&vc->chan); in pxad_try_hotchain()
627 BUG_ON(list_empty(&vc->desc_issued)); in pxad_try_hotchain()
633 vd_last_issued = list_entry(vc->desc_issued.prev, in pxad_try_hotchain()
655 dev_warn(&phy->vchan->vc.chan.dev->device, in clear_chan_irq()
676 spin_lock_irqsave(&chan->vc.lock, flags); in pxad_chan_handler()
677 list_for_each_entry_safe(vd, tmp, &chan->vc.desc_issued, node) { in pxad_chan_handler()
678 dev_dbg(&chan->vc.chan.dev->device, in pxad_chan_handler()
694 dev_dbg(&chan->vc.chan.dev->device, in pxad_chan_handler()
697 list_empty(&chan->vc.desc_submitted), in pxad_chan_handler()
698 list_empty(&chan->vc.desc_issued)); in pxad_chan_handler()
701 if (list_empty(&chan->vc.desc_issued)) { in pxad_chan_handler()
703 !list_empty(&chan->vc.desc_submitted); in pxad_chan_handler()
705 vd = list_first_entry(&chan->vc.desc_issued, in pxad_chan_handler()
710 spin_unlock_irqrestore(&chan->vc.lock, flags); in pxad_chan_handler()
738 struct pxad_device *pdev = to_pxad_dev(chan->vc.chan.device); in pxad_alloc_chan_resources()
749 dev_err(&chan->vc.chan.dev->device, in pxad_alloc_chan_resources()
762 vchan_free_chan_resources(&chan->vc); in pxad_free_chan_resources()
805 dev_err(&chan->vc.chan.dev->device, in pxad_alloc_desc()
826 struct virt_dma_chan *vc = to_virt_chan(tx->chan); in pxad_tx_submit() local
827 struct pxad_chan *chan = to_pxad_chan(&vc->chan); in pxad_tx_submit()
835 spin_lock_irqsave(&vc->lock, flags); in pxad_tx_submit()
838 if (list_empty(&vc->desc_submitted) && pxad_try_hotchain(vc, vd)) { in pxad_tx_submit()
839 list_move_tail(&vd->node, &vc->desc_issued); in pxad_tx_submit()
840 dev_dbg(&chan->vc.chan.dev->device, in pxad_tx_submit()
849 if (!list_empty(&vc->desc_submitted)) { in pxad_tx_submit()
850 vd_chained = list_entry(vc->desc_submitted.prev, in pxad_tx_submit()
863 dev_dbg(&chan->vc.chan.dev->device, in pxad_tx_submit()
866 list_move_tail(&vd->node, &vc->desc_submitted); in pxad_tx_submit()
870 spin_unlock_irqrestore(&vc->lock, flags); in pxad_tx_submit()
880 spin_lock_irqsave(&chan->vc.lock, flags); in pxad_issue_pending()
881 if (list_empty(&chan->vc.desc_submitted)) in pxad_issue_pending()
884 vd_first = list_first_entry(&chan->vc.desc_submitted, in pxad_issue_pending()
886 dev_dbg(&chan->vc.chan.dev->device, in pxad_issue_pending()
889 vchan_issue_pending(&chan->vc); in pxad_issue_pending()
890 if (!pxad_try_hotchain(&chan->vc, vd_first)) in pxad_issue_pending()
893 spin_unlock_irqrestore(&chan->vc.lock, flags); in pxad_issue_pending()
897 pxad_tx_prep(struct virt_dma_chan *vc, struct virt_dma_desc *vd, in pxad_tx_prep() argument
901 struct pxad_chan *chan = container_of(vc, struct pxad_chan, vc); in pxad_tx_prep()
904 tx = vchan_tx_prep(vc, vd, tx_flags); in pxad_tx_prep()
906 dev_dbg(&chan->vc.chan.dev->device, in pxad_tx_prep()
908 vc, vd, vd->tx.cookie, in pxad_tx_prep()
920 struct pxad_device *pdev = to_pxad_dev(chan->vc.chan.device); in pxad_get_config()
945 dev_dbg(&chan->vc.chan.dev->device, in pxad_get_config()
986 dev_dbg(&chan->vc.chan.dev->device, in pxad_prep_memcpy()
1015 return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags); in pxad_prep_memcpy()
1035 dev_dbg(&chan->vc.chan.dev->device, in pxad_prep_slave_sg()
1065 return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags); in pxad_prep_slave_sg()
1083 dev_err(&chan->vc.chan.dev->device, in pxad_prep_dma_cyclic()
1094 dev_dbg(&chan->vc.chan.dev->device, in pxad_prep_dma_cyclic()
1118 return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags); in pxad_prep_dma_cyclic()
1136 struct pxad_device *pdev = to_pxad_dev(chan->vc.chan.device); in pxad_terminate_all()
1142 dev_dbg(&chan->vc.chan.dev->device, in pxad_terminate_all()
1143 "%s(): vchan %p: terminate all\n", __func__, &chan->vc); in pxad_terminate_all()
1145 spin_lock_irqsave(&chan->vc.lock, flags); in pxad_terminate_all()
1146 vchan_get_all_descriptors(&chan->vc, &head); in pxad_terminate_all()
1149 dev_dbg(&chan->vc.chan.dev->device, in pxad_terminate_all()
1163 spin_unlock_irqrestore(&chan->vc.lock, flags); in pxad_terminate_all()
1164 vchan_dma_desc_free_list(&chan->vc, &head); in pxad_terminate_all()
1187 spin_lock_irqsave(&chan->vc.lock, flags); in pxad_residue()
1189 vd = vchan_find_desc(&chan->vc, cookie); in pxad_residue()
1238 spin_unlock_irqrestore(&chan->vc.lock, flags); in pxad_residue()
1239 dev_dbg(&chan->vc.chan.dev->device, in pxad_residue()
1264 vc.chan.device_node) { in pxad_free_channels()
1265 list_del(&c->vc.chan.device_node); in pxad_free_channels()
1266 tasklet_kill(&c->vc.task); in pxad_free_channels()
1378 c->vc.desc_free = pxad_free_desc; in pxad_init_dmadev()
1379 vchan_init(&c->vc, &pdev->slave); in pxad_init_dmadev()