Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 111bbf69 authored by Bin Liu's avatar Bin Liu Committed by Sasha Levin
Browse files

usb: musb: fix cppi channel teardown for isoch transfer



[ Upstream commit b431ba8803666e56c1d178a421b3cbc36e8d3d33 ]

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: default avatarBin Liu <b-liu@ti.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
parent 70596165
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -543,6 +543,9 @@ static int cppi41_dma_channel_abort(struct dma_channel *channel)
	} else {
		cppi41_set_autoreq_mode(cppi41_channel, EP_MODE_AUTOREQ_NONE);

		/* delay to drain to cppi dma pipeline for isoch */
		udelay(250);

		csr = musb_readw(epio, MUSB_RXCSR);
		csr &= ~(MUSB_RXCSR_H_REQPKT | MUSB_RXCSR_DMAENAB);
		musb_writew(epio, MUSB_RXCSR, csr);