USB: ftdi_sio: fix hi-speed device packet size calculation
authorMark Adamson <mark.adamson@ftdichip.com>
Fri, 1 May 2009 10:48:45 +0000 (11:48 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 16 Jun 2009 04:44:41 +0000 (21:44 -0700)
commit895f28badce96cd903026b0076966e3571b6968e
tree30881e196227ba32ff78fae9f6ebc37f89dff455
parent094c2e6db4be381f708ad8a2e0532d7782f05ea4
USB: ftdi_sio: fix hi-speed device packet size calculation

Added a function to set the packet size to be used based on the value from the
device endpoint descriptor.  The FT2232H and FT4232H hi-speed devices will have
wMaxPacketSize of 512 bytes when connected to a USB 2.0 hi-speed host, but will
use alternative descriptors with wMaxPacketSize of 64 bytes if connected to a
USB 1.1 host or hub.  All other FTDI devices have wMaxPacketSize of 64 bytes,
except some FT232R and FT245R devices which customers have mistakenly
programmed to have wMaxPacketSize of 0 - this is an error and will be
overridden to use wMaxPacketSize of 64 bytes.  The packet size used is
important as it determines where the driver removes the status bytes from the
incoming data.  If it is incorrect, it will lead to data corruption.

Signed-off-by: Mark J. Adamson <mark.adamson@ftdichip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/serial/ftdi_sio.c