Commit 72a755fc authored by Peter Favrholdt's avatar Peter Favrholdt Committed by Linus Torvalds

[PATCH] USB: ftdi_sio: allow baud rate to be changed without raising RTS and DTR

I'm using a 2 port USB RS232 dongle to connect to a serial-IR cradle for
a bar code reader). Detecting the baudrate of the serial-IR involves
keeping DTR low while changing baudrate.

This works using normal 16550A serial ports as well as the FTDI driver
version 1.4.0 (Linux 2.6.8) but stopped working with the change to
"ensure RTS and DTR are raised when changing baudrate" introduced in
version 1.4.1 (Linux 2.6.9).

The attached patch fixes this, so RTS and DTR is only raised when
changing baudrate iff the previous baudrate was B0.
Signed-off-by: default avatarPeter Favrholdt <pfavr@how.dk>
Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent b6137383
...@@ -1846,10 +1846,12 @@ static void ftdi_set_termios (struct usb_serial_port *port, struct termios *old_ ...@@ -1846,10 +1846,12 @@ static void ftdi_set_termios (struct usb_serial_port *port, struct termios *old_
} else { } else {
/* set the baudrate determined before */ /* set the baudrate determined before */
if (change_speed(port)) { if (change_speed(port)) {
err("%s urb failed to set baurdrate", __FUNCTION__); err("%s urb failed to set baudrate", __FUNCTION__);
}
/* Ensure RTS and DTR are raised when baudrate changed from 0 */
if ((old_termios->c_cflag & CBAUD) == B0) {
set_mctrl(port, TIOCM_DTR | TIOCM_RTS);
} }
/* Ensure RTS and DTR are raised */
set_mctrl(port, TIOCM_DTR | TIOCM_RTS);
} }
/* Set flow control */ /* Set flow control */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment