summaryrefslogtreecommitdiff
path: root/drivers/dma
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2020-03-28 21:14:50 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2020-03-28 21:14:50 +0100
commit4a31b8a3519d5dde0eacbb088b0d45c83732535b (patch)
treeee0d405004393bba659643108bfe40f21788b96d /drivers/dma
parent73b51c4600180ca69bfa5f22ad097edbf655d0d1 (diff)
parent3b41c631678a15390920ffc1e72470e83db73ac8 (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.c4
-rw-r--r--drivers/dma/tegra20-apb-dma.c6
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;