USB: musb_gadget_ep0: fix unhandled endpoint 0 IRQs, again
authorSergei Shtylyov <sshtylyov@ru.mvista.com>
Mon, 16 Nov 2009 10:54:05 +0000 (16:24 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Dec 2009 19:55:25 +0000 (11:55 -0800)
Commit a5073b52833e4df8e16c93dc4cbb7e0c558c74a2 (musb_gadget: fix
unhandled endpoint 0 IRQs) somehow missed its key change:

"The gadget EP0 code routinely ignores an interrupt at end of
the data phase because of musb_g_ep0_giveback() resetting the
state machine to "idle, waiting for SETUP" phase prematurely."

So, the majority of the cases of unhandled IRQs is still unfixed...

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/musb/musb_gadget_ep0.c

index 522efb31b56b5304a0f2d52b4e232749f8c6a319..1c44b975049ca3efdd882ebd03169ca2a74dcdc6 100644 (file)
@@ -199,7 +199,6 @@ service_in_request(struct musb *musb, const struct usb_ctrlrequest *ctrlrequest)
 static void musb_g_ep0_giveback(struct musb *musb, struct usb_request *req)
 {
        musb_g_giveback(&musb->endpoints[0].ep_in, req, 0);
-       musb->ep0_state = MUSB_EP0_STAGE_SETUP;
 }
 
 /*