usb: musb: musb_cppi41: Dont reprogram DMA if tear down is initiated
authorGeorge Cherian <george.cherian@ti.com>
Thu, 27 Feb 2014 05:14:41 +0000 (10:44 +0530)
committerVinod Koul <vinod.koul@intel.com>
Tue, 11 Mar 2014 10:52:43 +0000 (16:22 +0530)
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>
drivers/usb/musb/musb_cppi41.c

index f88929609baca527e19044fb3d60fe581fa58893..c0c6281e3496f3c7f8484e1c843b0594ed13e6ed 100644 (file)
@@ -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 =