]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC r197682
authorthompsa <thompsa@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 4 Oct 2009 19:03:32 +0000 (19:03 +0000)
committerthompsa <thompsa@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 4 Oct 2009 19:03:32 +0000 (19:03 +0000)
commit3fd45c1540cf9bc483a095489df1b74ba3d8cdf5
tree8b08a3ffadbf300e1693c6ac937b3afa41233417
parenta0e04accb3352f56702fc9fc98d91542a287ae1e
MFC r197682

 EHCI Hardware BUG workaround

 The EHCI HW can use the qtd_next field instead of qtd_altnext when a short
 packet is received. This contradicts what is stated in the EHCI datasheet.
 Also the total-bytes field in the status field of the following TD gets
 corrupted upon reception of a short packet!  We work this around in software by
 not queueing more than one job/TD at a time of up to 16Kbytes! The bug has been
 seen on multiple INTEL based EHCI chips.  Other vendors have not been tested
 yet.

 - Applications using /dev/usb/X.Y.Z, where Z is non-zero are affected, but not
   applications using LibUSB v0.1, v1.2 and v2.0.
 - Mass Storage (umass) is affected.

Approved by: re (kib)

git-svn-id: svn://svn.freebsd.org/base/stable/8@197751 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/usb/controller/ehci.c