Skip to content

Commit b431ba8

Browse files
liubiinFelipe Balbi
authored andcommitted
usb: musb: fix cppi channel teardown for isoch transfer
After a few iterations of start/stop UVC camera streaming, the streaming stops. This patch adds 250us delay in the cppi channel abort path to let cppi drain properly. Using 50us delay seems to be too aggressive, some webcams are still broken. 250us is the original value used in TI 3.2 kernel. Signed-off-by: Bin Liu <b-liu@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
1 parent 8fb7ab5 commit b431ba8

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/usb/musb/musb_cppi41.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,9 @@ static int cppi41_dma_channel_abort(struct dma_channel *channel)
551551
} else {
552552
cppi41_set_autoreq_mode(cppi41_channel, EP_MODE_AUTOREQ_NONE);
553553

554+
/* delay to drain to cppi dma pipeline for isoch */
555+
udelay(250);
556+
554557
csr = musb_readw(epio, MUSB_RXCSR);
555558
csr &= ~(MUSB_RXCSR_H_REQPKT | MUSB_RXCSR_DMAENAB);
556559
musb_writew(epio, MUSB_RXCSR, csr);

0 commit comments

Comments
 (0)