tty-usb-console: Fix termios
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>
This commit is contained in:
parent
4dbd5a0961
commit
c17ee88697
@ -81,39 +81,11 @@ static int usb_console_setup(struct console *co, char *options)
|
|||||||
if (*s)
|
if (*s)
|
||||||
doflow = (*s++ == 'r');
|
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) {
|
switch (bits) {
|
||||||
case 7:
|
case 7:
|
||||||
cflag |= CS7;
|
cflag |= CS7;
|
||||||
@ -188,6 +160,7 @@ static int usb_console_setup(struct console *co, char *options)
|
|||||||
|
|
||||||
if (serial->type->set_termios) {
|
if (serial->type->set_termios) {
|
||||||
termios->c_cflag = cflag;
|
termios->c_cflag = cflag;
|
||||||
|
tty_termios_encode_baud_rate(termios, baud, baud);
|
||||||
serial->type->set_termios(NULL, port, &dummy);
|
serial->type->set_termios(NULL, port, &dummy);
|
||||||
|
|
||||||
port->port.tty = NULL;
|
port->port.tty = NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user