diff options
| author | akpm <akpm@linux-foundation.org> | 2022-06-27 10:31:34 -0700 |
|---|---|---|
| committer | akpm <akpm@linux-foundation.org> | 2022-06-27 10:31:34 -0700 |
| commit | 46a3b1125308f8f90a065eeecfafd2a96b01a36c (patch) | |
| tree | 6e080118fbad5aa217d160cedf02f10108ce3bf2 /drivers/tty/serial/serial_core.c | |
| parent | 6edda04ccc7cfb281d139e352dbd5dd933bd2751 (diff) | |
| parent | 03c765b0e3b4cb5063276b086c76f7a612856a9a (diff) | |
Merge branch 'master' into mm-stable
Diffstat (limited to 'drivers/tty/serial/serial_core.c')
| -rw-r--r-- | drivers/tty/serial/serial_core.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c index 9a85b41caa0a..338ebadfd44b 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -2214,11 +2214,12 @@ int uart_suspend_port(struct uart_driver *drv, struct uart_port *uport) /* * Nothing to do if the console is not suspending * except stop_rx to prevent any asynchronous data - * over RX line. Re-start_rx, when required, is - * done by set_termios in resume sequence + * over RX line. However ensure that we will be + * able to Re-start_rx later. */ if (!console_suspend_enabled && uart_console(uport)) { - uport->ops->stop_rx(uport); + if (uport->ops->start_rx) + uport->ops->stop_rx(uport); goto unlock; } @@ -2310,6 +2311,8 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *uport) if (console_suspend_enabled) uart_change_pm(state, UART_PM_STATE_ON); uport->ops->set_termios(uport, &termios, NULL); + if (!console_suspend_enabled && uport->ops->start_rx) + uport->ops->start_rx(uport); if (console_suspend_enabled) console_start(uport->cons); } |