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 <sshtyl...@ru.mvista.com>
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 Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source