提交 692933b2 编写于 作者: A Ajay Kumar Gupta 提交者: Felipe Balbi

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: NAjay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: NFelipe Balbi <balbi@ti.com>
上级 8545e603
...@@ -2098,7 +2098,7 @@ static int musb_cleanup_urb(struct urb *urb, struct musb_qh *qh) ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册