Lines Matching refs:fsl_chan
26 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); in fsl_edma_synchronize() local
28 vchan_synchronize(&fsl_chan->vchan); in fsl_edma_synchronize()
36 struct fsl_edma_chan *fsl_chan; in fsl_edma_tx_handler() local
46 fsl_chan = &fsl_edma->chans[ch]; in fsl_edma_tx_handler()
48 spin_lock(&fsl_chan->vchan.lock); in fsl_edma_tx_handler()
50 if (!fsl_chan->edesc) { in fsl_edma_tx_handler()
52 spin_unlock(&fsl_chan->vchan.lock); in fsl_edma_tx_handler()
56 if (!fsl_chan->edesc->iscyclic) { in fsl_edma_tx_handler()
57 list_del(&fsl_chan->edesc->vdesc.node); in fsl_edma_tx_handler()
58 vchan_cookie_complete(&fsl_chan->edesc->vdesc); in fsl_edma_tx_handler()
59 fsl_chan->edesc = NULL; in fsl_edma_tx_handler()
60 fsl_chan->status = DMA_COMPLETE; in fsl_edma_tx_handler()
61 fsl_chan->idle = true; in fsl_edma_tx_handler()
63 vchan_cyclic_callback(&fsl_chan->edesc->vdesc); in fsl_edma_tx_handler()
66 if (!fsl_chan->edesc) in fsl_edma_tx_handler()
67 fsl_edma_xfer_desc(fsl_chan); in fsl_edma_tx_handler()
69 spin_unlock(&fsl_chan->vchan.lock); in fsl_edma_tx_handler()
109 struct fsl_edma_chan *fsl_chan; in fsl_edma_xlate() local
124 fsl_chan = to_fsl_edma_chan(chan); in fsl_edma_xlate()
125 fsl_chan->slave_id = dma_spec->args[1]; in fsl_edma_xlate()
126 fsl_edma_chan_mux(fsl_chan, fsl_chan->slave_id, in fsl_edma_xlate()
273 struct fsl_edma_chan *fsl_chan; in fsl_edma_probe() local
291 len = sizeof(*fsl_edma) + sizeof(*fsl_chan) * chans; in fsl_edma_probe()
352 struct fsl_edma_chan *fsl_chan = &fsl_edma->chans[i]; in fsl_edma_probe() local
354 fsl_chan->edma = fsl_edma; in fsl_edma_probe()
355 fsl_chan->pm_state = RUNNING; in fsl_edma_probe()
356 fsl_chan->slave_id = 0; in fsl_edma_probe()
357 fsl_chan->idle = true; in fsl_edma_probe()
358 fsl_chan->dma_dir = DMA_NONE; in fsl_edma_probe()
359 fsl_chan->vchan.desc_free = fsl_edma_free_desc; in fsl_edma_probe()
360 vchan_init(&fsl_chan->vchan, &fsl_edma->dma_dev); in fsl_edma_probe()
363 fsl_edma_chan_mux(fsl_chan, 0, false); in fsl_edma_probe()
442 struct fsl_edma_chan *fsl_chan; in fsl_edma_suspend_late() local
447 fsl_chan = &fsl_edma->chans[i]; in fsl_edma_suspend_late()
448 spin_lock_irqsave(&fsl_chan->vchan.lock, flags); in fsl_edma_suspend_late()
450 if (unlikely(!fsl_chan->idle)) { in fsl_edma_suspend_late()
452 fsl_edma_disable_request(fsl_chan); in fsl_edma_suspend_late()
453 fsl_edma_chan_mux(fsl_chan, 0, false); in fsl_edma_suspend_late()
456 fsl_chan->pm_state = SUSPENDED; in fsl_edma_suspend_late()
457 spin_unlock_irqrestore(&fsl_chan->vchan.lock, flags); in fsl_edma_suspend_late()
466 struct fsl_edma_chan *fsl_chan; in fsl_edma_resume_early() local
471 fsl_chan = &fsl_edma->chans[i]; in fsl_edma_resume_early()
472 fsl_chan->pm_state = RUNNING; in fsl_edma_resume_early()
474 if (fsl_chan->slave_id != 0) in fsl_edma_resume_early()
475 fsl_edma_chan_mux(fsl_chan, fsl_chan->slave_id, true); in fsl_edma_resume_early()