Lines Matching refs:chan
167 static struct device *chan2dev(struct dma_chan *chan) in chan2dev() argument
169 return &chan->dev->device; in chan2dev()
177 static inline struct sun6i_vchan *to_sun6i_vchan(struct dma_chan *chan) in to_sun6i_vchan() argument
179 return container_of(chan, struct sun6i_vchan, vc.chan); in to_sun6i_vchan()
323 dev_dbg(chan2dev(&vchan->vc.chan), in sun6i_dma_dump_lli()
335 struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(vd->tx.chan->device); in sun6i_dma_free_desc()
360 struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(vchan->vc.chan.device); in sun6i_dma_start_desc()
406 list_for_each_entry(vchan, &sdev->slave.channels, vc.chan.device_node) { in sun6i_dma_tasklet()
506 struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, in sun6i_dma_prep_dma_memcpy() argument
509 struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device); in sun6i_dma_prep_dma_memcpy()
510 struct sun6i_vchan *vchan = to_sun6i_vchan(chan); in sun6i_dma_prep_dma_memcpy()
516 dev_dbg(chan2dev(chan), in sun6i_dma_prep_dma_memcpy()
518 __func__, vchan->vc.chan.chan_id, &dest, &src, len, flags); in sun6i_dma_prep_dma_memcpy()
561 struct dma_chan *chan, struct scatterlist *sgl, in sun6i_dma_prep_slave_sg() argument
565 struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device); in sun6i_dma_prep_slave_sg()
566 struct sun6i_vchan *vchan = to_sun6i_vchan(chan); in sun6i_dma_prep_slave_sg()
578 dev_err(chan2dev(chan), "Invalid DMA direction\n"); in sun6i_dma_prep_slave_sg()
603 dev_dbg(chan2dev(chan), in sun6i_dma_prep_slave_sg()
605 __func__, vchan->vc.chan.chan_id, in sun6i_dma_prep_slave_sg()
621 dev_dbg(chan2dev(chan), in sun6i_dma_prep_slave_sg()
623 __func__, vchan->vc.chan.chan_id, in sun6i_dma_prep_slave_sg()
631 dev_dbg(chan2dev(chan), "First: %pad\n", &txd->p_lli); in sun6i_dma_prep_slave_sg()
646 static int sun6i_dma_config(struct dma_chan *chan, in sun6i_dma_config() argument
649 struct sun6i_vchan *vchan = to_sun6i_vchan(chan); in sun6i_dma_config()
656 static int sun6i_dma_pause(struct dma_chan *chan) in sun6i_dma_pause() argument
658 struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device); in sun6i_dma_pause()
659 struct sun6i_vchan *vchan = to_sun6i_vchan(chan); in sun6i_dma_pause()
662 dev_dbg(chan2dev(chan), "vchan %p: pause\n", &vchan->vc); in sun6i_dma_pause()
676 static int sun6i_dma_resume(struct dma_chan *chan) in sun6i_dma_resume() argument
678 struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device); in sun6i_dma_resume()
679 struct sun6i_vchan *vchan = to_sun6i_vchan(chan); in sun6i_dma_resume()
683 dev_dbg(chan2dev(chan), "vchan %p: resume\n", &vchan->vc); in sun6i_dma_resume()
701 static int sun6i_dma_terminate_all(struct dma_chan *chan) in sun6i_dma_terminate_all() argument
703 struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device); in sun6i_dma_terminate_all()
704 struct sun6i_vchan *vchan = to_sun6i_vchan(chan); in sun6i_dma_terminate_all()
734 static enum dma_status sun6i_dma_tx_status(struct dma_chan *chan, in sun6i_dma_tx_status() argument
738 struct sun6i_vchan *vchan = to_sun6i_vchan(chan); in sun6i_dma_tx_status()
747 ret = dma_cookie_status(chan, cookie, state); in sun6i_dma_tx_status()
772 static void sun6i_dma_issue_pending(struct dma_chan *chan) in sun6i_dma_issue_pending() argument
774 struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device); in sun6i_dma_issue_pending()
775 struct sun6i_vchan *vchan = to_sun6i_vchan(chan); in sun6i_dma_issue_pending()
786 dev_dbg(chan2dev(chan), "vchan %p: issued\n", in sun6i_dma_issue_pending()
792 dev_dbg(chan2dev(chan), "vchan %p: nothing to issue\n", in sun6i_dma_issue_pending()
799 static void sun6i_dma_free_chan_resources(struct dma_chan *chan) in sun6i_dma_free_chan_resources() argument
801 struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device); in sun6i_dma_free_chan_resources()
802 struct sun6i_vchan *vchan = to_sun6i_vchan(chan); in sun6i_dma_free_chan_resources()
817 struct dma_chan *chan; in sun6i_dma_of_xlate() local
823 chan = dma_get_any_slave_channel(&sdev->slave); in sun6i_dma_of_xlate()
824 if (!chan) in sun6i_dma_of_xlate()
827 vchan = to_sun6i_vchan(chan); in sun6i_dma_of_xlate()
830 return chan; in sun6i_dma_of_xlate()
856 list_del(&vchan->vc.chan.device_node); in sun6i_dma_free()