aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-01-14 17:19:10 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-01-14 17:19:10 -0800
commit29c7abf945ccd131f9de39bfcc76ffa4ace64c71 (patch)
tree970a8d8aa72d576c1d4d1e18df26bb8bb389416f /drivers
parentae0a0dc50ea601c3c8f03a2c0b068872db58d626 (diff)
parentb8ebb26656cbe2be00a318061a14c7b1c51172f6 (diff)
downloadhistory-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.c16
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);
}