diff mbox

musb_gadget_ep0: fix unhandled endpoint 0 IRQs, again

Message ID 200909022028.25482.sshtylyov@ru.mvista.com (mailing list archive)
State Awaiting Upstream
Headers show

Commit Message

Sergei Shtylyov Sept. 2, 2009, 4:28 p.m. UTC
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>

---
Please, apply it before 2.6.31 is out...

 drivers/usb/musb/musb_gadget_ep0.c |    1 -
 1 files changed, 1 deletion(-)

Comments

Sergei Shtylyov Sept. 9, 2009, 1:45 p.m. UTC | #1
Hello, I wrote:

> 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>
> 
> ---
> Please, apply it before 2.6.31 is out...

    PING.

>  drivers/usb/musb/musb_gadget_ep0.c |    1 -
>  1 files changed, 1 deletion(-)
> 
> Index: linux-2.6/drivers/usb/musb/musb_gadget_ep0.c
> ===================================================================
> --- linux-2.6.orig/drivers/usb/musb/musb_gadget_ep0.c
> +++ linux-2.6/drivers/usb/musb/musb_gadget_ep0.c
> @@ -199,7 +199,6 @@ service_in_request(struct musb *musb, co
>  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;
>  }
>  
>  /*

WBR, Sergei
diff mbox

Patch

Index: linux-2.6/drivers/usb/musb/musb_gadget_ep0.c
===================================================================
--- linux-2.6.orig/drivers/usb/musb/musb_gadget_ep0.c
+++ linux-2.6/drivers/usb/musb/musb_gadget_ep0.c
@@ -199,7 +199,6 @@  service_in_request(struct musb *musb, co
 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;
 }
 
 /*