USB: EHCI: add software retry for transaction errors
authorAlan Stern <stern@rowland.harvard.edu>
Thu, 26 Mar 2009 18:25:05 +0000 (18:25 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 2 May 2009 17:23:23 +0000 (10:23 -0700)
commitff074b6c6d931513b4404b32bb79abac93cd32ab
treed0a023ac4a4c45eb8c8e52053982602245dc9533
parentb3fa1152a4d04fc674265a48562f4f4aacc025f4
USB: EHCI: add software retry for transaction errors

upstream commit: a2c2706e1043c17139c2dafd171c4a5cf008ef7e

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>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
drivers/usb/host/ehci-q.c
drivers/usb/host/ehci.h