linux/drivers/usb/host
Karsten Wiese 9aa09d2f8f USB: EHCI: slow down ITD reuse
Currently ITDs are immediately recycled whenever their URB completes.
However, EHCI hardware can sometimes remember some ITD state.  This
means that when the ITD is reused before end-of-frame it may sometimes
cause the hardware to reference bogus state.

This patch defers reusing such ITDs by moving them into a new ehci member
cached_itd_list. ITDs resting in cached_itd_list are moved back into their
stream's free_list once scan_periodic() detects that the active frame has
elapsed.

This makes the snd_usb_us122l driver (in kernel since .28) work right
when it's hooked up through EHCI.

[ dbrownell@users.sourceforge.net: comment fixups ]

Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
Tested-by: Philippe Carriere <philippe-f.carriere@wanadoo.fr>
Tested-by: Federico Briata <federicobriata@gmail.com>
Cc: stable <stable@kernel.org>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-02-27 14:40:50 -08:00
..
whci wusb: whci-hcd: always lock whc->lock with interrupts disabled 2009-02-16 14:37:12 +00:00
ehci-au1xxx.c
ehci-dbg.c USB: clean up redundant tests on unsigned 2009-01-07 09:59:49 -08:00
ehci-fsl.c
ehci-fsl.h
ehci-hcd.c USB: EHCI: slow down ITD reuse 2009-02-27 14:40:50 -08:00
ehci-hub.c USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] 2009-01-07 09:59:52 -08:00
ehci-ixp4xx.c
ehci-mem.c USB: EHCI: slow down ITD reuse 2009-02-27 14:40:50 -08:00
ehci-orion.c
ehci-pci.c USB/PCI: Fix resume breakage of controllers behind cardbus bridges 2009-02-17 16:56:31 -08:00
ehci-ppc-of.c USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] 2009-01-07 09:59:52 -08:00
ehci-ps3.c
ehci-q.c
ehci-sched.c USB: EHCI: slow down ITD reuse 2009-02-27 14:40:50 -08:00
ehci.h USB: EHCI: slow down ITD reuse 2009-02-27 14:40:50 -08:00
fhci-dbg.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-hcd.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-hub.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-mem.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-q.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-sched.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci-tds.c USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
fhci.h USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
hwa-hc.c uwb: use dev_dbg() for debug messages 2008-12-22 18:22:50 +00:00
isp116x-hcd.c
isp116x.h
isp1760-hcd.c USB: isp1760: don't auto disable Port1 on ISP1761 2009-01-07 10:00:09 -08:00
isp1760-hcd.h USB: isp1760: don't auto disable Port1 on ISP1761 2009-01-07 10:00:09 -08:00
isp1760-if.c USB: isp1760: don't auto disable Port1 on ISP1761 2009-01-07 10:00:09 -08:00
Kconfig USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
Makefile USB: Driver for Freescale QUICC Engine USB Host Controller 2009-01-27 16:15:38 -08:00
ohci-at91.c
ohci-au1xxx.c
ohci-dbg.c
ohci-ep93xx.c
ohci-hcd.c USB: don't enable wakeup by default for PCI host controllers 2009-01-27 16:15:32 -08:00
ohci-hub.c
ohci-lh7a404.c
ohci-mem.c
ohci-omap.c [ARM] omap: ensure OMAP drivers pass a struct device to clk_get() 2009-01-24 11:41:16 +00:00
ohci-pci.c USB/PCI: Fix resume breakage of controllers behind cardbus bridges 2009-02-17 16:56:31 -08:00
ohci-pnx4008.c USB: Convert ohci-pnx4008 to a new-style i2c driver 2009-01-07 09:59:53 -08:00
ohci-pnx8550.c
ohci-ppc-of.c USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] 2009-01-07 09:59:52 -08:00
ohci-ppc-soc.c
ohci-ps3.c
ohci-pxa27x.c
ohci-q.c
ohci-s3c2410.c
ohci-sa1111.c
ohci-sh.c
ohci-sm501.c
ohci-ssb.c
ohci-tmio.c usb: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-07 09:59:52 -08:00
ohci.h
oxu210hp-hcd.c oxu210hp-hcd.c: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-07 09:59:52 -08:00
oxu210hp.h usb host: Oxford OXU210HP HCD driver. 2009-01-07 09:59:50 -08:00
pci-quirks.c USB: EHCI pci-quirks.c: don't wait so long for BIOS handoff 2009-01-07 09:59:50 -08:00
pci-quirks.h
r8a66597-hcd.c USB: m66592 and r8a66597 resource changes 2009-01-07 09:59:53 -08:00
r8a66597.h sh: sh_mobile usb clock framework support 2008-12-22 18:42:51 +09:00
sl811_cs.c
sl811-hcd.c
sl811.h
u132-hcd.c
uhci-debug.c
uhci-hcd.c USB/PCI: Fix resume breakage of controllers behind cardbus bridges 2009-02-17 16:56:31 -08:00
uhci-hcd.h
uhci-hub.c
uhci-q.c