linux/drivers/usb/serial
Andrew Worsley b1ffb4c851 USB: Fix Corruption issue in USB ftdi driver ftdi_sio.c
Fix for ftdi_set_termios() glitching output

ftdi_set_termios() is constantly setting the baud rate, data bits and parity
unnecessarily on every call, . When called while characters are being
transmitted can cause the FTDI chip to corrupt the serial port bit stream
output by stalling the output half a bit during the output of a character.
Simple fix by skipping this setting if the baud rate/data bits/parity are
unchanged.

Signed-off-by: Andrew Worsley <amworsley@gmail.com>
Cc: stable <stable@vger.kernel.org>
----

  I had a brief run with strace on the getty and it was doing ioctl()s on
  each call but it didn't look relavant to the problem. I think the issue is
  that XON/XOFF flow control was being implmented via hardware - for the ixoff
  to allow the user to use XON/XOFF to control output. Unfortunately it would
  send 3 Control URBs updating all of the settings after each piece of input

  I am trying to work around the issue of gmail messing with the tab/spacing
  by submitting via SMTP via gmail which I believe should fix the issue.

  The patch is against v3.2-rc2 and compiles - but no additional testing in
  this kernel has been done.

  Thanks

   Andrew
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-18 11:27:16 -08:00
..
aircable.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
ark3116.c USB: ark3116 initialisation fix 2011-11-14 13:47:47 -08:00
belkin_sa.c tiocmset: kill the file pointer argument 2011-02-17 11:52:43 -08:00
belkin_sa.h
bus.c
ch341.c Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-03-16 15:11:04 -07:00
ChangeLog.history
console.c
cp210x.c USB: cp210x: fix typo, Telegesys should have been Telegesis 2011-05-10 14:14:58 -07:00
cyberjack.c
cypress_m8.c Fix common misspellings 2011-03-31 11:26:23 -03:00
cypress_m8.h
digi_acceleport.c doc: fix broken references 2011-09-27 18:08:04 +02:00
empeg.c
ezusb.c
ezusb_convert.pl
ftdi_sio.c USB: Fix Corruption issue in USB ftdi driver ftdi_sio.c 2011-11-18 11:27:16 -08:00
ftdi_sio.h USB: Add new FT232H chip to drivers/usb/serial/ftdi_sio.c 2011-06-27 13:46:44 -07:00
ftdi_sio_ids.h USB: ftdi_sio: Support TI/Luminary Micro Stellaris BD-ICDI Board 2011-10-18 13:42:07 -07:00
funsoft.c
garmin_gps.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
generic.c USB: serial: handle Data Carrier Detect changes 2011-01-22 18:53:26 -08:00
hp4x.c
io_16654.h
io_edgeport.c USB: use usb_endpoint_maxp() instead of le16_to_cpu() 2011-08-23 09:47:40 -07:00
io_edgeport.h Fix common misspellings 2011-03-31 11:26:23 -03:00
io_ionsp.h
io_tables.h
io_ti.c Fix common misspellings 2011-03-31 11:26:23 -03:00
io_ti.h
io_usbvend.h
ipaq.c
ipw.c USB: ipw: convert to usb-wwan framework 2011-08-22 15:21:16 -07:00
ir-usb.c
iuu_phoenix.c tiocmset: kill the file pointer argument 2011-02-17 11:52:43 -08:00
iuu_phoenix.h
Kconfig usb: fix ipw.c build error, select USB_SERIAL_WWAN 2011-08-24 15:06:53 -07:00
keyspan.c Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-03-16 15:11:04 -07:00
keyspan.h tiocmset: kill the file pointer argument 2011-02-17 11:52:43 -08:00
keyspan_pda.c Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-03-16 15:11:04 -07:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
kl5kusb105.c tiocmset: kill the file pointer argument 2011-02-17 11:52:43 -08:00
kl5kusb105.h
kobil_sct.c Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-03-16 15:11:04 -07:00
kobil_sct.h
Makefile Revert "USB: sam-ba: add driver for Atmel SAM Boot Assistant (SAM-BA)" 2011-04-13 16:48:25 -07:00
Makefile-keyspan_pda_fw
mct_u232.c usb/serial: fix function args warnings, dropping *filp 2011-04-04 08:35:20 -07:00
mct_u232.h
mos7720.c USB: serial: remove duplicate returns 2011-08-10 14:17:08 +02:00
mos7840.c USB: serial: remove duplicate returns 2011-08-10 14:17:08 +02:00
moto_modem.c USB: moto_modem: Add USB identifier for the Motorola VE240. 2011-04-29 16:45:21 -07:00
navman.c
omninet.c
opticon.c USB: use usb_endpoint_maxp() instead of le16_to_cpu() 2011-08-23 09:47:40 -07:00
option.c USB: option: add PID of Huawei E173s 3G modem 2011-11-18 11:18:46 -08:00
oti6858.c tty: remove filp from the USB tty ioctls 2011-02-17 11:59:14 -08:00
oti6858.h
pl2303.c USB: serial: pl2303: rm duplicate id 2011-11-15 10:06:15 -08:00
pl2303.h USB: serial: pl2303: rm duplicate id 2011-11-15 10:06:15 -08:00
qcaux.c
qcserial.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
safe_serial.c
siemens_mpi.c
sierra.c PM / Runtime: Add macro to test for runtime PM events 2011-08-19 23:49:48 +02:00
spcp8x5.c tty: remove filp from the USB tty ioctls 2011-02-17 11:59:14 -08:00
ssu100.c tty: remove filp from the USB tty ioctls 2011-02-17 11:59:14 -08:00
symbolserial.c USB: use usb_endpoint_maxp() instead of le16_to_cpu() 2011-08-23 09:47:40 -07:00
ti_usb_3410_5052.c USB: TI 3410/5052 USB Serial Driver: Fix mem leak when firmware is too big. 2011-06-14 14:20:30 -07:00
ti_usb_3410_5052.h
usb-serial.c USB: use usb_endpoint_maxp() instead of le16_to_cpu() 2011-08-23 09:47:40 -07:00
usb-wwan.h tty: remove filp from the USB tty ioctls 2011-02-17 11:59:14 -08:00
usb_debug.c
usb_wwan.c PM / Runtime: Add macro to test for runtime PM events 2011-08-19 23:49:48 +02:00
visor.c USB: Add Samsung SGH-I500/Android modem ID switch to visor driver 2011-02-17 10:30:23 -08:00
visor.h
vivopay-serial.c
whiteheat.c tty: remove filp from the USB tty ioctls 2011-02-17 11:59:14 -08:00
whiteheat.h
zio.c