dma: dw: return DMA_PAUSED only if cookie status is DMA_IN_PROGRESS
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 15 Jul 2013 12:04:41 +0000 (15:04 +0300)
committerVinod Koul <vinod.koul@intel.com>
Mon, 5 Aug 2013 04:02:26 +0000 (09:32 +0530)
To obey a usual practice let's return DMA_PAUSED status only if
dma_cookie_status returned DMA_IN_PROGRESS.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/dw/core.c

index 5f2ee5ff8fa4f3d5cb6be0a438b28de0d51a5dfa..89eb89f222846e0ff5d20cfc5e14619fc05d6600 100644 (file)
@@ -1107,7 +1107,7 @@ dwc_tx_status(struct dma_chan *chan,
        if (ret != DMA_SUCCESS)
                dma_set_residue(txstate, dwc_get_residue(dwc));
 
-       if (dwc->paused)
+       if (dwc->paused && ret == DMA_IN_PROGRESS)
                return DMA_PAUSED;
 
        return ret;