aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/ch341.c
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2007-10-18 04:24:18 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-10-25 15:18:40 -0400
commit73f593081911b1be0d8d3962ecedd635c1e27179 (patch)
tree2f42500419d9ed6bd39d60168f3b2b5035784682 /drivers/usb/serial/ch341.c
parent7cc7ee28263e89793ae4d21e6e0102404c9a037b (diff)
USB: ch341: fix termios handling
The ch341 currently doesn't support most of the hardware setting. So to keep the termios data right we propogate the old termios hardware values back then encode the speed. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/serial/ch341.c')
-rw-r--r--drivers/usb/serial/ch341.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/usb/serial/ch341.c b/drivers/usb/serial/ch341.c
index 6b252ceb39a8..42582d49b69c 100644
--- a/drivers/usb/serial/ch341.c
+++ b/drivers/usb/serial/ch341.c
@@ -272,9 +272,6 @@ static void ch341_set_termios(struct usb_serial_port *port,
272 272
273 dbg("ch341_set_termios()"); 273 dbg("ch341_set_termios()");
274 274
275 if (!tty || !tty->termios)
276 return;
277
278 baud_rate = tty_get_baud_rate(tty); 275 baud_rate = tty_get_baud_rate(tty);
279 276
280 switch (baud_rate) { 277 switch (baud_rate) {
@@ -299,6 +296,11 @@ static void ch341_set_termios(struct usb_serial_port *port,
299 * (cflag & PARENB) : parity {NONE, EVEN, ODD} 296 * (cflag & PARENB) : parity {NONE, EVEN, ODD}
300 * (cflag & CSTOPB) : stop bits [1, 2] 297 * (cflag & CSTOPB) : stop bits [1, 2]
301 */ 298 */
299
300 /* Copy back the old hardware settings */
301 tty_termios_copy_hw(tty->termios, old_termios);
302 /* And re-encode with the new baud */
303 tty_encode_baud_rate(tty, baud_rate, baud_rate);
302} 304}
303 305
304static struct usb_driver ch341_driver = { 306static struct usb_driver ch341_driver = {