Lines Matching refs:fsl_chan
25 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); in fsl_edma_synchronize() local
27 vchan_synchronize(&fsl_chan->vchan); in fsl_edma_synchronize()
35 struct fsl_edma_chan *fsl_chan; in fsl_edma_tx_handler() local
45 fsl_chan = &fsl_edma->chans[ch]; in fsl_edma_tx_handler()
47 spin_lock(&fsl_chan->vchan.lock); in fsl_edma_tx_handler()
49 if (!fsl_chan->edesc) { in fsl_edma_tx_handler()
51 spin_unlock(&fsl_chan->vchan.lock); in fsl_edma_tx_handler()
55 if (!fsl_chan->edesc->iscyclic) { in fsl_edma_tx_handler()
56 list_del(&fsl_chan->edesc->vdesc.node); in fsl_edma_tx_handler()
57 vchan_cookie_complete(&fsl_chan->edesc->vdesc); in fsl_edma_tx_handler()
58 fsl_chan->edesc = NULL; in fsl_edma_tx_handler()
59 fsl_chan->status = DMA_COMPLETE; in fsl_edma_tx_handler()
60 fsl_chan->idle = true; in fsl_edma_tx_handler()
62 vchan_cyclic_callback(&fsl_chan->edesc->vdesc); in fsl_edma_tx_handler()
65 if (!fsl_chan->edesc) in fsl_edma_tx_handler()
66 fsl_edma_xfer_desc(fsl_chan); in fsl_edma_tx_handler()
68 spin_unlock(&fsl_chan->vchan.lock); in fsl_edma_tx_handler()
108 struct fsl_edma_chan *fsl_chan; in fsl_edma_xlate() local
123 fsl_chan = to_fsl_edma_chan(chan); in fsl_edma_xlate()
124 fsl_chan->slave_id = dma_spec->args[1]; in fsl_edma_xlate()
125 fsl_edma_chan_mux(fsl_chan, fsl_chan->slave_id, in fsl_edma_xlate()
272 struct fsl_edma_chan *fsl_chan; in fsl_edma_probe() local
291 len = sizeof(*fsl_edma) + sizeof(*fsl_chan) * chans; in fsl_edma_probe()
353 struct fsl_edma_chan *fsl_chan = &fsl_edma->chans[i]; in fsl_edma_probe() local
355 fsl_chan->edma = fsl_edma; in fsl_edma_probe()
356 fsl_chan->pm_state = RUNNING; in fsl_edma_probe()
357 fsl_chan->slave_id = 0; in fsl_edma_probe()
358 fsl_chan->idle = true; in fsl_edma_probe()
359 fsl_chan->dma_dir = DMA_NONE; in fsl_edma_probe()
360 fsl_chan->vchan.desc_free = fsl_edma_free_desc; in fsl_edma_probe()
361 vchan_init(&fsl_chan->vchan, &fsl_edma->dma_dev); in fsl_edma_probe()
364 fsl_edma_chan_mux(fsl_chan, 0, false); in fsl_edma_probe()
437 struct fsl_edma_chan *fsl_chan; in fsl_edma_suspend_late() local
442 fsl_chan = &fsl_edma->chans[i]; in fsl_edma_suspend_late()
443 spin_lock_irqsave(&fsl_chan->vchan.lock, flags); in fsl_edma_suspend_late()
445 if (unlikely(!fsl_chan->idle)) { in fsl_edma_suspend_late()
447 fsl_edma_disable_request(fsl_chan); in fsl_edma_suspend_late()
448 fsl_edma_chan_mux(fsl_chan, 0, false); in fsl_edma_suspend_late()
451 fsl_chan->pm_state = SUSPENDED; in fsl_edma_suspend_late()
452 spin_unlock_irqrestore(&fsl_chan->vchan.lock, flags); in fsl_edma_suspend_late()
461 struct fsl_edma_chan *fsl_chan; in fsl_edma_resume_early() local
466 fsl_chan = &fsl_edma->chans[i]; in fsl_edma_resume_early()
467 fsl_chan->pm_state = RUNNING; in fsl_edma_resume_early()
469 if (fsl_chan->slave_id != 0) in fsl_edma_resume_early()
470 fsl_edma_chan_mux(fsl_chan, fsl_chan->slave_id, true); in fsl_edma_resume_early()