linux/drivers
Alan Stern 50ce5c0683 USB: OHCI: workaround for hardware bug: retired TDs not added to the Done Queue
This patch (as1636) is a partial workaround for a hardware bug
affecting OHCI controllers by NVIDIA at least, maybe others too.  When
the controller retires a Transfer Descriptor, it is supposed to add
the TD onto the Done Queue.  But sometimes this doesn't happen, with
the result that ohci-hcd never realizes the corresponding transfer has
finished.  Symptoms can vary; a typical result is that USB audio stops
working after a while.

The patch works around the problem by recognizing that TDs are always
processed in order.  Therefore, if a later TD is found on the Done
Queue than all the earlier TDs for the same endpoint must be finished
as well.

Unfortunately this won't solve the problem in cases where the missing
TD is the last one in the endpoint's queue.  A complete fix would
require a signficant amount of change to the driver.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Oliver Neukum <oneukum@suse.de>
CC: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-26 14:57:20 -08:00
..
accessibility
acpi ACPI video: Ignore errors after _DOD evaluation. 2012-11-03 09:52:54 +08:00
amba
ata
atm
auxdisplay
base Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2012-11-10 21:58:34 +01:00
bcma
block
bluetooth Bluetooth: ath3k: Add support for VAIO VPCEH [0489:e027] 2012-11-09 16:45:37 +01:00
bus drivers: bus: ocp2scp: add pdata support 2012-11-07 09:35:53 -08:00
cdrom
char
clk clk: ux500: Register slimbus clock lookups for u8500 2012-11-12 10:20:23 -08:00
clocksource
connector
cpufreq
cpuidle
crypto
dca
devfreq
dio
dma
edac
eisa
extcon
firewire
firmware
gpio Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2012-11-10 21:58:34 +01:00
gpu Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-fixes 2012-11-16 10:00:43 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2012-11-16 07:58:20 -08:00
hsi
hv
hwmon hwmon: Fix chip feature table headers 2012-11-05 21:54:40 +01:00
hwspinlock
i2c i2c-mux-pinctrl: Fix probe error path 2012-11-13 22:27:19 +01:00
ide
idle
iio
infiniband
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-11-02 16:11:15 -07:00
iommu
irqchip irqchip: irq-bcm2835: Add terminating entry for of_device_id table 2012-11-06 07:37:10 -08:00
isdn isdn: Make CONFIG_ISDN depend on CONFIG_NETDEVICES 2012-11-07 18:59:26 -05:00
leds ledtrig-cpu: kill useless mutex to fix sleep in atomic context 2012-11-11 12:09:43 -08:00
lguest
macintosh
md
media
memory
memstick
message
mfd
misc
mmc mmc: sdhci-s3c: fix the card detection in runtime-pm 2012-11-07 15:40:52 -05:00
mtd
net Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2012-11-16 12:59:13 -05:00
nfc
nubus
of
oprofile
parisc
parport
pci PCI/portdrv: Don't create hotplug slots unless port supports hotplug 2012-11-05 16:59:59 -07:00
pcmcia
pinctrl pinctrl: samsung and exynos need to depend on OF && GPIOLIB 2012-11-06 10:02:14 +01:00
platform
pnp
power
pps
ps3
ptp
pwm
rapidio rapidio: fix kernel-doc warnings 2012-11-16 14:33:04 -08:00
regulator Merge remote-tracking branches 'regulator/fix/gpio', 'regulator/fix/put' and 'regulator/fix/supp-volt' into tmp 2012-11-15 11:16:02 +09:00
remoteproc
rpmsg
rtc
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-11-16 14:10:15 -08:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2012-11-10 21:58:34 +01:00
sfi
sh
sn
spi
ssb
staging Revert "Staging: Android alarm: IOCTL command encoding fix" 2012-11-13 13:04:43 -08:00
target
tc
thermal exynos4_tmu_driver_ids should be exynos_tmu_driver_ids. 2012-11-03 09:52:55 +08:00
tty tty: serial: max310x: Add terminating entry for spi_device_id table 2012-11-14 14:49:42 -08:00
uio
usb USB: OHCI: workaround for hardware bug: retired TDs not added to the Done Queue 2012-11-26 14:57:20 -08:00
uwb drivers/uwb: remove depends on CONFIG_EXPERIMENTAL 2012-11-15 17:39:03 -08:00
vfio
vhost
video Bug-fixes: 2012-11-02 13:26:11 -07:00
virt
virtio virtio: Don't access index after unregister. 2012-11-09 14:54:24 +10:30
vlynq
vme
w1
watchdog
xen Bug-fixes: 2012-11-10 06:56:21 +01:00
zorro
Kconfig
Makefile