Lines Matching refs:dchan

86 #define to_ls1x_dma_chan(dchan)		\  argument
87 container_of(dchan, struct ls1x_dma_chan, vc.chan)
100 struct dma_chan *dchan = &chan->vc.chan; in ls1x_dma_query() local
105 val |= dchan->chan_id; in ls1x_dma_query()
110 dev_err(chan2dev(dchan), "failed to query DMA\n"); in ls1x_dma_query()
118 struct dma_chan *dchan = &chan->vc.chan; in ls1x_dma_start() local
119 struct device *dev = chan2dev(dchan); in ls1x_dma_start()
124 val |= dchan->chan_id; in ls1x_dma_start()
143 static void ls1x_dma_free_chan_resources(struct dma_chan *dchan) in ls1x_dma_free_chan_resources() argument
145 struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan); in ls1x_dma_free_chan_resources()
146 struct device *dev = chan2dev(dchan); in ls1x_dma_free_chan_resources()
156 static int ls1x_dma_alloc_chan_resources(struct dma_chan *dchan) in ls1x_dma_alloc_chan_resources() argument
158 struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan); in ls1x_dma_alloc_chan_resources()
159 struct device *dev = chan2dev(dchan); in ls1x_dma_alloc_chan_resources()
164 IRQF_SHARED, dma_chan_name(dchan), chan); in ls1x_dma_alloc_chan_resources()
170 chan->lli_pool = dma_pool_create(dma_chan_name(dchan), dev, in ls1x_dma_alloc_chan_resources()
216 static int ls1x_dma_prep_lli(struct dma_chan *dchan, struct ls1x_dma_desc *desc, in ls1x_dma_prep_lli() argument
220 struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan); in ls1x_dma_prep_lli()
222 struct device *dev = chan2dev(dchan); in ls1x_dma_prep_lli()
249 if (!is_dma_copy_aligned(dchan->device, buf_addr, 0, buf_len)) { in ls1x_dma_prep_lli()
296 ls1x_dma_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *sgl, in ls1x_dma_prep_slave_sg() argument
302 dev_dbg(chan2dev(dchan), "sg_len=%u flags=0x%lx dir=%s\n", in ls1x_dma_prep_slave_sg()
309 if (ls1x_dma_prep_lli(dchan, desc, sgl, sg_len, dir, false)) { in ls1x_dma_prep_slave_sg()
314 return vchan_tx_prep(to_virt_chan(dchan), &desc->vd, flags); in ls1x_dma_prep_slave_sg()
318 ls1x_dma_prep_dma_cyclic(struct dma_chan *dchan, dma_addr_t buf_addr, in ls1x_dma_prep_dma_cyclic() argument
328 dev_dbg(chan2dev(dchan), in ls1x_dma_prep_dma_cyclic()
351 ret = ls1x_dma_prep_lli(dchan, desc, sgl, sg_len, dir, true); in ls1x_dma_prep_dma_cyclic()
358 return vchan_tx_prep(to_virt_chan(dchan), &desc->vd, flags); in ls1x_dma_prep_dma_cyclic()
361 static int ls1x_dma_slave_config(struct dma_chan *dchan, in ls1x_dma_slave_config() argument
364 struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan); in ls1x_dma_slave_config()
374 static int ls1x_dma_pause(struct dma_chan *dchan) in ls1x_dma_pause() argument
376 struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan); in ls1x_dma_pause()
388 static int ls1x_dma_resume(struct dma_chan *dchan) in ls1x_dma_resume() argument
390 struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan); in ls1x_dma_resume()
397 static int ls1x_dma_terminate_all(struct dma_chan *dchan) in ls1x_dma_terminate_all() argument
399 struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan); in ls1x_dma_terminate_all()
418 static void ls1x_dma_synchronize(struct dma_chan *dchan) in ls1x_dma_synchronize() argument
420 vchan_synchronize(to_virt_chan(dchan)); in ls1x_dma_synchronize()
423 static enum dma_status ls1x_dma_tx_status(struct dma_chan *dchan, in ls1x_dma_tx_status() argument
427 struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan); in ls1x_dma_tx_status()
432 status = dma_cookie_status(dchan, cookie, state); in ls1x_dma_tx_status()
453 dev_dbg(chan2dev(dchan), "current lli_phys=%pad", in ls1x_dma_tx_status()
468 static void ls1x_dma_issue_pending(struct dma_chan *dchan) in ls1x_dma_issue_pending() argument
470 struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan); in ls1x_dma_issue_pending()
491 struct dma_chan *dchan = &chan->vc.chan; in ls1x_dma_irq_handler() local
492 struct device *dev = chan2dev(dchan); in ls1x_dma_irq_handler()
500 irq, dchan->chan_id); in ls1x_dma_irq_handler()
512 dev_dbg(dev, "DMA IRQ %d on channel %d\n", irq, dchan->chan_id); in ls1x_dma_irq_handler()