diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2016-02-11 12:08:42 +0300 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2016-02-22 05:49:23 +0300 |
commit | b84730ffcfccbed76e7f623b336e9bba8d78d93e (patch) | |
tree | bc6fb4c9b9b221ba56490907edab1001cc8ab225 /drivers/dma | |
parent | 92e963f50fc74041b5e9e744c330dca48e04f08d (diff) | |
download | linux-b84730ffcfccbed76e7f623b336e9bba8d78d93e.tar.xz |
dmaengine: edma: Implement device_synchronize callback
We need the callback to support the dmaengine_terminate_sync().
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/edma.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c index d92d65549406..81bbfdc20591 100644 --- a/drivers/dma/edma.c +++ b/drivers/dma/edma.c @@ -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) { @@ -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; @@ -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; |