aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/pl330.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index a7d9d3029b14..340f9e607cd8 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -2127,6 +2127,7 @@ static int pl330_terminate_all(struct dma_chan *chan)
2127 struct pl330_dmac *pl330 = pch->dmac; 2127 struct pl330_dmac *pl330 = pch->dmac;
2128 LIST_HEAD(list); 2128 LIST_HEAD(list);
2129 2129
2130 pm_runtime_get_sync(pl330->ddma.dev);
2130 spin_lock_irqsave(&pch->lock, flags); 2131 spin_lock_irqsave(&pch->lock, flags);
2131 spin_lock(&pl330->lock); 2132 spin_lock(&pl330->lock);
2132 _stop(pch->thread); 2133 _stop(pch->thread);
@@ -2151,6 +2152,8 @@ static int pl330_terminate_all(struct dma_chan *chan)
2151 list_splice_tail_init(&pch->work_list, &pl330->desc_pool); 2152 list_splice_tail_init(&pch->work_list, &pl330->desc_pool);
2152 list_splice_tail_init(&pch->completed_list, &pl330->desc_pool); 2153 list_splice_tail_init(&pch->completed_list, &pl330->desc_pool);
2153 spin_unlock_irqrestore(&pch->lock, flags); 2154 spin_unlock_irqrestore(&pch->lock, flags);
2155 pm_runtime_mark_last_busy(pl330->ddma.dev);
2156 pm_runtime_put_autosuspend(pl330->ddma.dev);
2154 2157
2155 return 0; 2158 return 0;
2156} 2159}