|
@@ -2287,6 +2287,7 @@ pl330_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
|
|
|
goto out;
|
|
|
|
|
|
spin_lock_irqsave(&pch->lock, flags);
|
|
|
+ spin_lock(&pch->thread->dmac->lock);
|
|
|
|
|
|
if (pch->thread->req_running != -1)
|
|
|
running = pch->thread->req[pch->thread->req_running].desc;
|
|
@@ -2329,6 +2330,7 @@ pl330_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
|
|
|
if (desc->last)
|
|
|
residual = 0;
|
|
|
}
|
|
|
+ spin_unlock(&pch->thread->dmac->lock);
|
|
|
spin_unlock_irqrestore(&pch->lock, flags);
|
|
|
|
|
|
out:
|