linux/drivers/usb/host
Alan Stern c2f6595fbd USB: EHCI: don't send Clear-TT-Buffer following a STALL
This patch (as1304) fixes a regression in ehci-hcd.  Evidently some
hubs don't handle Clear-TT-Buffer requests correctly, so we should
avoid sending them when they don't appear to be absolutely necessary.
The reported symptom is that output on a downstream audio device cuts
out because the hub stops relaying isochronous packets.

The patch prevents Clear-TT-Buffer requests from being sent following
a STALL handshake.  In theory a STALL indicates either that the
downstream device sent a STALL or that no matching TT buffer could be
found.  In either case, the transfer is completed and the TT buffer
does not remain busy, so it doesn't need to be cleared.

Also, the patch fixes a minor flaw in the code that actually sends the
Clear-TT-Buffer requests.  Although the pipe direction isn't really
used for control transfers, it should be a Send rather than a Receive.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-by: Javier Kohen <jkohen@users.sourceforge.net>
CC: David Brownell <david-b@pacbell.net>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-11-30 16:43:15 -08:00
..
whci USB: whci-hcd: always do an update after processing a halted qTD 2009-10-14 14:54:43 -07:00
ehci-atmel.c USB: at91: Add USB EHCI driver for at91sam9g45 series 2009-09-23 06:46:30 -07:00
ehci-au1xxx.c USB: au1xxx: add dev_pm_ops 2009-09-23 06:46:29 -07:00
ehci-dbg.c USB: EHCI: split ehci_qh into hw and sw parts 2009-09-23 06:46:29 -07:00
ehci-fsl.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-fsl.h
ehci-hcd.c USB: ehci-dbgp,ehci: Allow early or late use of the dbgp device 2009-09-23 06:46:38 -07:00
ehci-hub.c USB: ehci-dbgp,ehci: Allow dbpg to work with suspend/resume 2009-09-23 06:46:39 -07:00
ehci-ixp4xx.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-mem.c USB: EHCI: split ehci_qh into hw and sw parts 2009-09-23 06:46:29 -07:00
ehci-orion.c USB: ehci-orion: Call ehci_reset before ehci_halt 2009-07-28 14:31:10 -07:00
ehci-pci.c USB: ehci-dbgp,ehci: Allow early or late use of the dbgp device 2009-09-23 06:46:38 -07:00
ehci-ppc-of.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-ps3.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-q.c USB: EHCI: don't send Clear-TT-Buffer following a STALL 2009-11-30 16:43:15 -08:00
ehci-sched.c USB: ehci: Fix IST boundary checking interval math. 2009-10-14 14:54:43 -07:00
ehci-w90x900.c USB: Add nuvoton Ehci driver for w90p910 platform 2009-09-23 06:46:20 -07:00
ehci.h USB: EHCI: rescan the queue after an unlink 2009-09-23 06:46:37 -07:00
fhci-dbg.c USB: FHCI: use the new usb debugfs directory 2009-06-15 21:44:43 -07:00
fhci-hcd.c USB: FHCI: use dev_name() in place of bus_id. 2009-03-24 16:38:23 -07: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: fhci: mutually exclusive port_status 2009-07-12 15:16:36 -07: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 wusb: hwa-hc: Drop unused pci_suspend/resume hooks. 2009-06-15 21:44:44 -07:00
isp116x-hcd.c USB: make transfer_buffer_lengths in struct urb field u32 2009-03-24 16:20:36 -07:00
isp116x.h USB: add missing KERN_* constants to printks 2009-03-24 16:20:30 -07:00
isp1362-hcd.c USB: isp1362: fix build warnings on 64-bit systems 2009-10-09 13:52:07 -07:00
isp1362.h USB: isp1362: fix build warnings on 64-bit systems 2009-10-09 13:52:07 -07:00
isp1760-hcd.c USB: isp1760: allow platform devices to customize devflags 2009-09-23 06:46:29 -07:00
isp1760-hcd.h USB: isp1760: allow platform devices to customize devflags 2009-09-23 06:46:29 -07:00
isp1760-if.c USB: isp1760: allow platform devices to customize devflags 2009-09-23 06:46:29 -07:00
Kconfig USB: NXP ISP1362 USB host driver 2009-09-23 06:46:30 -07:00
Makefile USB: NXP ISP1362 USB host driver 2009-09-23 06:46:30 -07:00
ohci-at91.c USB: at91: modify OHCI driver to allow shared interrupts 2009-09-23 06:46:31 -07:00
ohci-au1xxx.c USB: au1xxx: add dev_pm_ops 2009-09-23 06:46:29 -07:00
ohci-dbg.c USB: OHCI: use the ohci structure directly in debugfs files. 2009-06-15 21:44:43 -07:00
ohci-ep93xx.c USB: ohci-ep93xx.c: remove unused variable 2009-09-23 06:46:34 -07:00
ohci-hcd.c USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
ohci-hub.c USB: OHCI: fix endless polling behavior 2008-10-17 14:41:04 -07:00
ohci-lh7a404.c
ohci-mem.c
ohci-omap.c USB: OMAP: OHCI: hc_driver's stop method should call ohci_stop 2009-07-28 14:31:09 -07:00
ohci-pci.c USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -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 usb/ps3: Add missing annotations 2009-06-16 14:17:32 +10:00
ohci-pxa27x.c Merge branch 'origin' into for-linus 2009-09-24 21:22:33 +01:00
ohci-q.c USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
ohci-s3c2410.c USB: S3C: Move usb-control.h to platform include 2009-03-24 16:20:45 -07:00
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 USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
oxu210hp-hcd.c USB: EHCI: OHCI: Remove unnecessary includes of reboot.h 2009-09-23 06:46:32 -07:00
oxu210hp.h USB: replace uses of __constant_{endian} 2009-03-24 16:20:33 -07:00
pci-quirks.c Revert "USB: Work around BIOS bugs by quiescing USB controllers earlier" 2009-10-11 15:57:57 -07:00
pci-quirks.h
r8a66597-hcd.c USB: r8a66597-hcd: fix cannot detect a device when uses_new_polling is set 2009-10-30 14:57:33 -07:00
r8a66597.h usb: move r8a66597 register defines 2009-07-23 13:04:10 +09:00
sl811-hcd.c USB: sl811-hcd: Fix device disconnect: 2009-09-23 06:46:16 -07:00
sl811.h
sl811_cs.c pcmcia: encapsulate ioaddr_t 2008-08-29 09:43:14 +02:00
u132-hcd.c
uhci-debug.c USB: uhci: don't use pseudo negative values 2009-03-24 16:20:36 -07:00
uhci-hcd.c debugfs: Modified default dir of debugfs for debugging UHCI. 2009-09-15 09:50:49 -07:00
uhci-hcd.h USB: replace uses of __constant_{endian} 2009-03-24 16:20:33 -07:00
uhci-hub.c
uhci-q.c USB: uhci: rm repeatedly evaluation for urbp->qh 2009-09-23 06:46:30 -07:00
xhci-dbg.c USB: xhci: Fix slot and endpoint context debugging. 2009-09-23 06:46:17 -07:00
xhci-ext-caps.h USB: xhci: Support xHCI host controllers and USB 3.0 devices. 2009-06-15 21:44:48 -07:00
xhci-hcd.c USB: xhci: Fix dropping endpoints from the xHC schedule. 2009-10-09 13:52:07 -07:00
xhci-hub.c USB: xhci: Root hub support. 2009-06-15 21:44:48 -07:00
xhci-mem.c USB: xhci: Fix scratchpad deallocation. 2009-11-17 16:46:34 -08:00
xhci-pci.c USB: Add hub descriptor update hook for xHCI 2009-09-23 06:46:40 -07:00
xhci-ring.c USB: xhci: Fix TRB physical to virtual address translation. 2009-11-17 16:46:34 -08:00
xhci.h USB: xhci: Support USB hubs. 2009-09-23 06:46:40 -07:00