Loading drivers/dma/edma.c +36 −27 Original line number Diff line number Diff line Loading @@ -866,6 +866,13 @@ static int edma_terminate_all(struct dma_chan *chan) return 0; } static void edma_synchronize(struct dma_chan *chan) { struct edma_chan *echan = to_edma_chan(chan); vchan_synchronize(&echan->vchan); } static int edma_slave_config(struct dma_chan *chan, struct dma_slave_config *cfg) { Loading Loading @@ -1362,12 +1369,11 @@ static struct dma_async_tx_descriptor *edma_prep_dma_cyclic( static void edma_completion_handler(struct edma_chan *echan) { struct device *dev = echan->vchan.chan.device->dev; struct edma_desc *edesc = echan->edesc; if (!edesc) return; struct edma_desc *edesc; spin_lock(&echan->vchan.lock); edesc = echan->edesc; if (edesc) { if (edesc->cyclic) { vchan_cyclic_callback(&edesc->vdesc); spin_unlock(&echan->vchan.lock); Loading @@ -1392,6 +1398,7 @@ static void edma_completion_handler(struct edma_chan *echan) edesc->processed_stat = edesc->processed; } edma_execute(echan); } spin_unlock(&echan->vchan.lock); } Loading Loading @@ -1798,6 +1805,7 @@ static void edma_dma_init(struct edma_cc *ecc, bool legacy_mode) s_ddev->device_pause = edma_dma_pause; s_ddev->device_resume = edma_dma_resume; s_ddev->device_terminate_all = edma_terminate_all; s_ddev->device_synchronize = edma_synchronize; s_ddev->src_addr_widths = EDMA_DMA_BUSWIDTHS; s_ddev->dst_addr_widths = EDMA_DMA_BUSWIDTHS; Loading @@ -1823,6 +1831,7 @@ static void edma_dma_init(struct edma_cc *ecc, bool legacy_mode) m_ddev->device_pause = edma_dma_pause; m_ddev->device_resume = edma_dma_resume; m_ddev->device_terminate_all = edma_terminate_all; m_ddev->device_synchronize = edma_synchronize; m_ddev->src_addr_widths = EDMA_DMA_BUSWIDTHS; m_ddev->dst_addr_widths = EDMA_DMA_BUSWIDTHS; Loading Loading
drivers/dma/edma.c +36 −27 Original line number Diff line number Diff line Loading @@ -866,6 +866,13 @@ static int edma_terminate_all(struct dma_chan *chan) return 0; } static void edma_synchronize(struct dma_chan *chan) { struct edma_chan *echan = to_edma_chan(chan); vchan_synchronize(&echan->vchan); } static int edma_slave_config(struct dma_chan *chan, struct dma_slave_config *cfg) { Loading Loading @@ -1362,12 +1369,11 @@ static struct dma_async_tx_descriptor *edma_prep_dma_cyclic( static void edma_completion_handler(struct edma_chan *echan) { struct device *dev = echan->vchan.chan.device->dev; struct edma_desc *edesc = echan->edesc; if (!edesc) return; struct edma_desc *edesc; spin_lock(&echan->vchan.lock); edesc = echan->edesc; if (edesc) { if (edesc->cyclic) { vchan_cyclic_callback(&edesc->vdesc); spin_unlock(&echan->vchan.lock); Loading @@ -1392,6 +1398,7 @@ static void edma_completion_handler(struct edma_chan *echan) edesc->processed_stat = edesc->processed; } edma_execute(echan); } spin_unlock(&echan->vchan.lock); } Loading Loading @@ -1798,6 +1805,7 @@ static void edma_dma_init(struct edma_cc *ecc, bool legacy_mode) s_ddev->device_pause = edma_dma_pause; s_ddev->device_resume = edma_dma_resume; s_ddev->device_terminate_all = edma_terminate_all; s_ddev->device_synchronize = edma_synchronize; s_ddev->src_addr_widths = EDMA_DMA_BUSWIDTHS; s_ddev->dst_addr_widths = EDMA_DMA_BUSWIDTHS; Loading @@ -1823,6 +1831,7 @@ static void edma_dma_init(struct edma_cc *ecc, bool legacy_mode) m_ddev->device_pause = edma_dma_pause; m_ddev->device_resume = edma_dma_resume; m_ddev->device_terminate_all = edma_terminate_all; m_ddev->device_synchronize = edma_synchronize; m_ddev->src_addr_widths = EDMA_DMA_BUSWIDTHS; m_ddev->dst_addr_widths = EDMA_DMA_BUSWIDTHS; Loading