diff options
author | George Cherian <george.cherian@ti.com> | 2014-02-27 00:14:41 -0500 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2014-03-05 15:40:05 -0500 |
commit | aecbc31d767cb549e93a44e50218e20d1bc66b59 (patch) | |
tree | 954647ee5fadda82e2d726a243065a3c9db3b050 /drivers/usb | |
parent | 57303488cd37da58263e842de134dc65f7c626d5 (diff) |
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: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb')
-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 5b0f2a58f8ce..7b8bbf53127e 100644 --- a/drivers/usb/musb/musb_cppi41.c +++ b/drivers/usb/musb/musb_cppi41.c | |||
@@ -132,7 +132,8 @@ static void cppi41_trans_done(struct cppi41_dma_channel *cppi41_channel) | |||
132 | struct musb_hw_ep *hw_ep = cppi41_channel->hw_ep; | 132 | struct musb_hw_ep *hw_ep = cppi41_channel->hw_ep; |
133 | struct musb *musb = hw_ep->musb; | 133 | struct musb *musb = hw_ep->musb; |
134 | 134 | ||
135 | if (!cppi41_channel->prog_len) { | 135 | if (!cppi41_channel->prog_len || |
136 | (cppi41_channel->channel.status == MUSB_DMA_STATUS_FREE)) { | ||
136 | 137 | ||
137 | /* done, complete */ | 138 | /* done, complete */ |
138 | cppi41_channel->channel.actual_len = | 139 | cppi41_channel->channel.actual_len = |