USB: ehci tolerates some buggy devices
authorDavid Brownell <david-b@pacbell.net>
Fri, 8 Feb 2008 23:08:44 +0000 (15:08 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 25 Apr 2008 04:16:35 +0000 (21:16 -0700)
commitcaa9ef672a045ba0b19184cd3f872b583f066771
treef55bc5f1e2597c947b00d813d9c7568a2d0af02b
parente01e7fe3886715f083313da409c5850472455d06
USB: ehci tolerates some buggy devices

This teaches EHCI how to to work around bugs in certain high speed
devices, by accomodating "bulk" packets that exceed the 512 byte
constant value required by the USB 2.0 specification.  (Have a
look at section 5.8.3, paragraphs 1 and 3.)

It also makes the descriptor parsing code warn when it encounters
such bugs.  (We've had reports of maybe two or three such devices,
all pretty recent.)

Such devices are nonconformant.  The proper fix is have the vendors
of those devices do the simple, obvious, and correct thing ... which
will let them be used with USB hosts that don't have workarounds for
this particular vendor bug.  But unless/until they do, we can at least
have one of the high speed HCDs work with such buggy devices.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/config.c
drivers/usb/host/ehci-q.c