|
@@ -860,7 +860,11 @@ dwc_tx_status(struct dma_chan *chan,
|
|
|
ret = dma_async_is_complete(cookie, last_complete, last_used);
|
|
|
}
|
|
|
|
|
|
- dma_set_tx_state(txstate, last_complete, last_used, 0);
|
|
|
+ if (ret != DMA_SUCCESS)
|
|
|
+ dma_set_tx_state(txstate, last_complete, last_used,
|
|
|
+ dwc_first_active(dwc)->len);
|
|
|
+ else
|
|
|
+ dma_set_tx_state(txstate, last_complete, last_used, 0);
|
|
|
|
|
|
return ret;
|
|
|
}
|