diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2020-03-28 21:14:50 +0100 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2020-03-28 21:14:50 +0100 |
commit | 4a31b8a3519d5dde0eacbb088b0d45c83732535b (patch) | |
tree | ee0d405004393bba659643108bfe40f21788b96d /drivers/dma | |
parent | 73b51c4600180ca69bfa5f22ad097edbf655d0d1 (diff) | |
parent | 3b41c631678a15390920ffc1e72470e83db73ac8 (diff) |
Merge tag 'v4.4.217' into toradex_vf_4.4-next
This is the 4.4.217 stable release
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/coh901318.c | 4 | ||||
-rw-r--r-- | drivers/dma/tegra20-apb-dma.c | 6 |
2 files changed, 1 insertions, 9 deletions
diff --git a/drivers/dma/coh901318.c b/drivers/dma/coh901318.c index 4746fee4cd48..546a91186de1 100644 --- a/drivers/dma/coh901318.c +++ b/drivers/dma/coh901318.c @@ -1960,8 +1960,6 @@ static void dma_tc_handle(struct coh901318_chan *cohc) return; } - spin_lock(&cohc->lock); - /* * When we reach this point, at least one queue item * should have been moved over from cohc->queue to @@ -1982,8 +1980,6 @@ static void dma_tc_handle(struct coh901318_chan *cohc) if (coh901318_queue_start(cohc) == NULL) cohc->busy = 0; - spin_unlock(&cohc->lock); - /* * This tasklet will remove items from cohc->active * and thus terminates them. diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index 67f201b8dcda..b5cf5d36de2b 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c @@ -285,7 +285,7 @@ static struct tegra_dma_desc *tegra_dma_desc_get( /* Do not allocate if desc are waiting for ack */ list_for_each_entry(dma_desc, &tdc->free_dma_desc, node) { - if (async_tx_test_ack(&dma_desc->txd)) { + if (async_tx_test_ack(&dma_desc->txd) && !dma_desc->cb_count) { list_del(&dma_desc->node); spin_unlock_irqrestore(&tdc->lock, flags); dma_desc->txd.flags = 0; @@ -754,10 +754,6 @@ static int tegra_dma_terminate_all(struct dma_chan *dc) bool was_busy; spin_lock_irqsave(&tdc->lock, flags); - if (list_empty(&tdc->pending_sg_req)) { - spin_unlock_irqrestore(&tdc->lock, flags); - return 0; - } if (!tdc->busy) goto skip_dma_stop; |