On Wednesday 04 February 2009, Sergei Shtylyov wrote:
> The EP0 code routinely ignores interrupt at end of the data phase because of
> musb_g_ep0_giveback() resetting the state machine to "idle, waiting for SETUP"
> phase prematurely.
>
> Signed-off-by: Sergei Shtylyov <[email protected]>
Does this depend on any preceding patches?
> ---
> This fixes most of the unhandled gadget interrupts that generic_interrupt()
> and
> davinci_interrupt() have been hiding from user by faking their result and only
> emitting 5th level debug message (for what is clearly an error).
So, this should then remove the comment and DBG() from the
davinci_interrupt() and generic_interrupt() IRQ handlers,
and stop always returning IRQ_HANDLED.
I'm not sure I'd agree this is a "must fix for 2.6.29" bug.
What problems does it cause ... other than a low priority
debug message appearing, when such messages are cranked up
to a "serious impact on usability" level? How did you
reproduce the problem?
ISTR this seemed harmless, which is why its diagnostic was
low priority and the mess only got a "REVISIT" comment.
I'm glad to see that you seem be part way to a fix, and I'll
add a revised version (with the changes I summarized above,
and the others you mentioned) to some patches I'm checking out.
- Dave
> 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
> @@ -197,7 +197,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;
> }
>
> /*
>
>
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source