|
@@ -768,16 +768,12 @@ static enum dma_status s3c24xx_dma_tx_status(struct dma_chan *chan,
|
|
|
|
|
|
spin_lock_irqsave(&s3cchan->vc.lock, flags);
|
|
|
ret = dma_cookie_status(chan, cookie, txstate);
|
|
|
- if (ret == DMA_COMPLETE) {
|
|
|
- spin_unlock_irqrestore(&s3cchan->vc.lock, flags);
|
|
|
- return ret;
|
|
|
- }
|
|
|
|
|
|
/*
|
|
|
* There's no point calculating the residue if there's
|
|
|
* no txstate to store the value.
|
|
|
*/
|
|
|
- if (!txstate) {
|
|
|
+ if (ret == DMA_COMPLETE || !txstate) {
|
|
|
spin_unlock_irqrestore(&s3cchan->vc.lock, flags);
|
|
|
return ret;
|
|
|
}
|