linux/drivers/usb/musb
Sergei Shtylyov a5073b5283 musb_gadget: fix unhandled endpoint 0 IRQs
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.

The driver also prematurely leaves the status phase on
receiving the SetupEnd interrupt.

As there were still unhandled endpoint 0 interrupts happening
from time to time after fixing these issues, there turned to
be yet another culprit: two distinct gadget states collapsed
into one.

The (missing) state that comes after STATUS IN/OUT states was
typically indiscernible from them since the corresponding
interrupts tend to happen within too little period of time
(due to only a zero-length status packet in between) and so
they got coalesced; yet this state is not the same as the next
one which is associated with the reception of a SETUP packet.

Adding this extra state seems to have fixed the rest of the
unhandled interrupts that generic_interrupt() and
davinci_interrupt() hid by faking their result and only
emitting a debug message -- so, stop doing that.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-06-15 21:44:39 -07:00
..
Kconfig USB: musb: partial DaVinci dm355 support 2009-03-24 16:20:36 -07:00
Makefile USB: musb: add Blackfin Kconfig options and Makefile 2009-01-07 10:00:08 -08:00
blackfin.c USB: musb: Kill some compiling warning in musb Blackfin part 2009-01-07 10:00:08 -08:00
blackfin.h USB: musb: add Blackfin driver to MUSB framework (v2) 2009-01-07 10:00:07 -08:00
cppi_dma.c USB: musb: fix isochronous TXDMA (take 2) 2009-04-17 10:50:26 -07:00
cppi_dma.h usb: musb_hdrc build fixes 2008-10-17 14:40:59 -07:00
davinci.c musb_gadget: fix unhandled endpoint 0 IRQs 2009-06-15 21:44:39 -07:00
davinci.h USB: musb: partial DaVinci dm355 support 2009-03-24 16:20:36 -07:00
musb_core.c musb_gadget: fix unhandled endpoint 0 IRQs 2009-06-15 21:44:39 -07:00
musb_core.h musb_gadget: fix unhandled endpoint 0 IRQs 2009-06-15 21:44:39 -07:00
musb_debug.h usb: musb: fix debug global variable name 2008-11-13 14:45:01 -08:00
musb_dma.h
musb_gadget.c USB: musb: sanitize clearing TXCSR DMA bits (take 2) 2009-04-17 10:50:25 -07:00
musb_gadget.h
musb_gadget_ep0.c musb_gadget: fix unhandled endpoint 0 IRQs 2009-06-15 21:44:39 -07:00
musb_host.c USB: musb: fix isochronous TXDMA (take 2) 2009-04-17 10:50:26 -07:00
musb_host.h usb: musb: fix BULK request on different available endpoints 2008-11-13 14:45:01 -08:00
musb_io.h USB: musb: Blackfin provides read/write I/O accessor in header files 2009-01-07 10:00:08 -08:00
musb_regs.h USB: musb: add Blackfin specific configuration to MUSB 2009-01-07 10:00:07 -08:00
musb_virthub.c USB: replace uses of __constant_{endian} 2009-03-24 16:20:33 -07:00
musbhsdma.c USB: musb: sanitize clearing TXCSR DMA bits (take 2) 2009-04-17 10:50:25 -07:00
musbhsdma.h USB: musb: enable low level DMA operation for Blackfin 2009-01-07 10:00:07 -08:00
omap2430.c USB: musb: Remove my email address from few musb related drivers 2009-04-23 14:15:27 -07:00
omap2430.h usb: musb: fix include path 2008-09-23 13:58:08 -07:00
tusb6010.c USB: musb: Remove my email address from few musb related drivers 2009-04-23 14:15:27 -07:00
tusb6010.h USB: musb: Remove my email address from few musb related drivers 2009-04-23 14:15:27 -07:00
tusb6010_omap.c USB: musb: tusb6010 buildfix 2009-01-27 16:15:33 -08:00