diff --git a/[refs] b/[refs] index b0edc53ceca1..070dc24c1d12 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ca2e71aa8cfb0056ce720f3fd53f59f5fac4a3e1 +refs/heads/master: 891b9dd10764352926e1e107756aa229dfa2c210 diff --git a/trunk/drivers/serial/serial_core.c b/trunk/drivers/serial/serial_core.c index ff21200f94f4..bc6cddd10294 100644 --- a/trunk/drivers/serial/serial_core.c +++ b/trunk/drivers/serial/serial_core.c @@ -2066,6 +2066,18 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *uport) * Re-enable the console device after suspending. */ if (console_suspend_enabled && uart_console(uport)) { + /* + * First try to use the console cflag setting. + */ + memset(&termios, 0, sizeof(struct ktermios)); + termios.c_cflag = uport->cons->cflag; + + /* + * If that's unset, use the tty termios setting. + */ + if (port->tty && port->tty->termios && termios.c_cflag == 0) + termios = *(port->tty->termios); + uart_change_pm(state, 0); uport->ops->set_termios(uport, &termios, NULL); console_start(uport->cons);