diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-01-14 17:19:10 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-01-14 17:19:10 -0800 |
commit | 29c7abf945ccd131f9de39bfcc76ffa4ace64c71 (patch) | |
tree | 970a8d8aa72d576c1d4d1e18df26bb8bb389416f /drivers | |
parent | ae0a0dc50ea601c3c8f03a2c0b068872db58d626 (diff) | |
parent | b8ebb26656cbe2be00a318061a14c7b1c51172f6 (diff) | |
download | history-29c7abf945ccd131f9de39bfcc76ffa4ace64c71.tar.gz |
Merge bk://bk.arm.linux.org.uk/linux-2.6-serial
into ppc970.osdl.org:/home/torvalds/v2.6/linux
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/serial/serial_core.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c index 5ed45a7cbddad7..16c227d30016b7 100644 --- a/drivers/serial/serial_core.c +++ b/drivers/serial/serial_core.c @@ -1877,7 +1877,21 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *port) * Re-enable the console device after suspending. */ if (uart_console(port)) { - uart_change_speed(state, NULL); + struct termios termios; + + /* + * First try to use the console cflag setting. + */ + memset(&termios, 0, sizeof(struct termios)); + termios.c_cflag = port->cons->cflag; + + /* + * If that's unset, use the tty termios setting. + */ + if (state->info && state->info->tty && termios.c_cflag == 0) + termios = *state->info->tty->termios; + + port->ops->set_termios(port, &termios, NULL); console_start(port->cons); } |