diff options
author | 2014-02-27 10:44:41 +0530 | |
---|---|---|
committer | 2014-03-11 16:22:43 +0530 | |
commit | f967d104b661c25a9a396e42a1f8ebe3431adc23 (patch) | |
tree | fea61f8fa284f0fd5a3fcb742579540329561b5b | |
parent | dmaengine: s3c24xx-dma: make phy->irq signed for error handling (diff) | |
download | wireguard-linux-f967d104b661c25a9a396e42a1f8ebe3431adc23.tar.xz wireguard-linux-f967d104b661c25a9a396e42a1f8ebe3431adc23.zip |
usb: musb: musb_cppi41: Dont reprogram DMA if tear down is initiated
Reprogramming the DMA after tear down is initiated leads to warning.
This is mainly seen with ISOCH since we do a delayed completion for
ISOCH transfers. In ISOCH transfers dma_completion should not reprogram
if the channel tear down is initiated.
Signed-off-by: George Cherian <george.cherian@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to '')
-rw-r--r-- | drivers/usb/musb/musb_cppi41.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/musb/musb_cppi41.c b/drivers/usb/musb/musb_cppi41.c index f88929609bac..c0c6281e3496 100644 --- a/drivers/usb/musb/musb_cppi41.c +++ b/drivers/usb/musb/musb_cppi41.c @@ -119,7 +119,8 @@ static void cppi41_trans_done(struct cppi41_dma_channel *cppi41_channel) struct musb_hw_ep *hw_ep = cppi41_channel->hw_ep; struct musb *musb = hw_ep->musb; - if (!cppi41_channel->prog_len) { + if (!cppi41_channel->prog_len || + (cppi41_channel->channel.status == MUSB_DMA_STATUS_FREE)) { /* done, complete */ cppi41_channel->channel.actual_len = |