Updated to 2.6.32.27
/drivers/usb/musb/musb_gadget_ep0.c
blob:067e5a95b1491334db8fdbc76554f2f0aae634e3 -> blob:53c04448a8b89dac89e4f4764ee63837a03fac13
--- drivers/usb/musb/musb_gadget_ep0.c
+++ drivers/usb/musb/musb_gadget_ep0.c
@@ -369,6 +369,7 @@ stall:
ctrlrequest->wIndex & 0x0f;
struct musb_ep *musb_ep;
struct musb_hw_ep *ep;
+ struct musb_request *request;
void __iomem *regs;
int is_in;
u16 csr;
@@ -411,6 +412,14 @@ stall:
csr);
}
+ /* Maybe start the first request in the queue */
+ request = to_musb_request(
+ next_request(musb_ep));
+ if (!musb_ep->busy && request) {
+ DBG(3, "restarting the request\n");
+ musb_ep_restart(musb, request);
+ }
+
/* select ep0 again */
musb_ep_select(mbase, 0);
handled = 1;