• Andrew Worsley's avatar
    USB: Fix Corruption issue in USB ftdi driver ftdi_sio.c · b1ffb4c8
    Andrew Worsley authored
    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: default avatarAndrew 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: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    b1ffb4c8
ftdi_sio.c 85.2 KB