Skip to content

Commit

Permalink
tty-usb-console: Fix termios
Browse files Browse the repository at this point in the history
Setting CFLAG bits is all well and good but you must sort out ispeed and
ospeed properly.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Alan Cox authored and Linus Torvalds committed Jul 22, 2008
1 parent 4dbd5a0 commit c17ee88
Showing 1 changed file with 5 additions and 32 deletions.
37 changes: 5 additions & 32 deletions drivers/usb/serial/console.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,39 +81,11 @@ static int usb_console_setup(struct console *co, char *options)
if (*s)
doflow = (*s++ == 'r');
}

/* Sane default */
if (baud == 0)
baud = 9600;

/* build a cflag setting */
switch (baud) {
case 1200:
cflag |= B1200;
break;
case 2400:
cflag |= B2400;
break;
case 4800:
cflag |= B4800;
break;
case 19200:
cflag |= B19200;
break;
case 38400:
cflag |= B38400;
break;
case 57600:
cflag |= B57600;
break;
case 115200:
cflag |= B115200;
break;
case 9600:
default:
cflag |= B9600;
/*
* Set this to a sane value to prevent a divide error
*/
baud = 9600;
break;
}
switch (bits) {
case 7:
cflag |= CS7;
Expand Down Expand Up @@ -188,6 +160,7 @@ static int usb_console_setup(struct console *co, char *options)

if (serial->type->set_termios) {
termios->c_cflag = cflag;
tty_termios_encode_baud_rate(termios, baud, baud);
serial->type->set_termios(NULL, port, &dummy);

port->port.tty = NULL;
Expand Down

0 comments on commit c17ee88

Please sign in to comment.