USB: EHCI: add software retry for transaction errors
authorAlan Stern <stern@rowland.harvard.edu>
Tue, 10 Feb 2009 15:16:58 +0000 (10:16 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 24 Mar 2009 23:20:31 +0000 (16:20 -0700)
commita2c2706e1043c17139c2dafd171c4a5cf008ef7e
tree59d6519004eb562ebee5df5f1a4394290dec16ff
parent1f4159c1620f74377e26d8a569d10ca5907ef475
USB: EHCI: add software retry for transaction errors

This patch (as1204) adds a software retry mechanism to ehci-hcd.  It
gets invoked when the driver encounters transaction errors on an
asynchronous endpoint.  On many systems, hardware deficiencies cause
such errors to occur if one device is unplugged while the host is
communicating with another device.  With the patch, the failed
transactions are retried and generally succeed the second or third
time through.

This is based on code originally written by Koichiro Saito.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested by: Koichiro Saito <Saito.Koichiro@adniss.jp>
CC: David Brownell <david-b@pacbell.net>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-q.c
drivers/usb/host/ehci.h