linux-kernel-test/drivers/usb/musb
Ajay Kumar Gupta 1e0320f0d4 USB: musb: NAK timeout scheme on bulk RX endpoint
Fixes endpoint starvation issue when more than one bulk QH is
multiplexed on the reserved bulk RX endpoint, which is normal
for cases like serial and ethernet adapters.

This patch sets the NAK timeout interval for such QHs, and when
a timeout triggers the next QH will be scheduled.  (This resembles
the bulk scheduling done in hardware by EHCI, OHCI, and UHCI.)

This scheme doesn't work for devices which are connected to a
high to full speed tree (transaction translator) as there is
no NAK timeout interrupt from the musb controller from such
devices.

Tested with PIO, Inventra DMA, CPPI DMA.

[ dbrownell@users.sourceforge.net:  fold in start_urb() update;
  clarify only for bulk RX; don't accidentally clear WZC bits ]

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Cc: Felipe Balbi <felipe.balbi@nokia.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-03-24 16:20:36 -07: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 cppi dma fix 2009-01-27 16:15:35 -08:00
cppi_dma.h usb: musb_hdrc build fixes 2008-10-17 14:40:59 -07:00
davinci.c usb: musb: make Davinci *work* in mainline 2009-02-27 14:40:51 -08:00
davinci.h
Kconfig USB: musb: Kconfig fix 2009-01-27 16:15:35 -08:00
Makefile USB: musb: add Blackfin Kconfig options and Makefile 2009-01-07 10:00:08 -08:00
musb_core.c USB: musb: fix srp sysfs entry deletion 2009-02-27 14:40:51 -08:00
musb_core.h USB: musb: rewrite host periodic endpoint allocation 2009-03-24 16:20:35 -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_ep0.c usb: musb: do not mess up count number and CSR0 register value 2008-10-17 14:40:59 -07:00
musb_gadget.c USB: musb: be careful with 64K+ transfer lengths (gadget side) 2009-02-27 14:40:51 -08:00
musb_gadget.h
musb_host.c USB: musb: NAK timeout scheme on bulk RX endpoint 2009-03-24 16:20:36 -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: enable low level DMA operation for Blackfin 2009-01-07 10:00:07 -08:00
musbhsdma.h USB: musb: enable low level DMA operation for Blackfin 2009-01-07 10:00:07 -08:00
omap2430.c USB: musb: minor locking fix 2009-01-07 09:59:59 -08:00
omap2430.h usb: musb: fix include path 2008-09-23 13:58:08 -07:00
tusb6010_omap.c USB: musb: tusb6010 buildfix 2009-01-27 16:15:33 -08:00
tusb6010.c USB: musb: sysfs mode updates 2009-01-07 09:59:58 -08:00
tusb6010.h usb: musb: pass configuration specifics via pdata 2008-08-13 17:33:01 -07:00