Merge remote-tracking branch 'spi/topic/core' into spi-next
[firefly-linux-kernel-4.4.55.git] / drivers / dma / omap-dma.c
index b19f04f4390bc1907c7e4a181e2bf53cc967bfa3..bbea8243f9e806a0b0626da6c3336ef644a0dc25 100644 (file)
@@ -853,8 +853,7 @@ static struct dma_async_tx_descriptor *omap_dma_prep_slave_sg(
 
 static struct dma_async_tx_descriptor *omap_dma_prep_dma_cyclic(
        struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
-       size_t period_len, enum dma_transfer_direction dir, unsigned long flags,
-       void *context)
+       size_t period_len, enum dma_transfer_direction dir, unsigned long flags)
 {
        struct omap_dmadev *od = to_omap_dma_dev(chan->device);
        struct omap_chan *c = to_omap_dma_chan(chan);
@@ -1018,6 +1017,11 @@ static int omap_dma_resume(struct omap_chan *c)
                return -EINVAL;
 
        if (c->paused) {
+               mb();
+
+               /* Restore channel link register */
+               omap_dma_chan_write(c, CLNK_CTRL, c->desc->clnk_ctrl);
+
                omap_dma_start(c, c->desc);
                c->paused = false;
        }