usb: musb: fix bug in musb_cleanup_urb
Control transfers with data expected from device to host will use usb_rcvctrlpipe() for urb->pipe so for such urbs 'is_in' will be set causing control urb to fall into the first "if" condition in musb_cleanup_urb(). Fixed by adding logic to check for non control endpoints. Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
8545e6031a
commit
692933b2cc
|
@ -2098,7 +2098,7 @@ static int musb_cleanup_urb(struct urb *urb, struct musb_qh *qh)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* turn off DMA requests, discard state, stop polling ... */
|
/* turn off DMA requests, discard state, stop polling ... */
|
||||||
if (is_in) {
|
if (ep->epnum && is_in) {
|
||||||
/* giveback saves bulk toggle */
|
/* giveback saves bulk toggle */
|
||||||
csr = musb_h_flush_rxfifo(ep, 0);
|
csr = musb_h_flush_rxfifo(ep, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue