forked from Minki/linux
serial-core: reset the console speed on resume
On some platforms, we need to restore the console speed on resume even it was not suspended (no_console_suspend), and on others we don't have to do that. So don't care about the "console_suspend_enabled" and unconditionally reset the console speed if it is a console. This is actually a redo ofba15ab0
(Set proper console speed on resume if console suspend is disabled) from Deepak Saxena. I also tried to investigate more to find out if this change will break others, here is what I've found out: commit891b9dd107
Author: Jason Wang <jason77.wang@gmail.com> serial-core: restore termios settings when resume console ports commitca2e71aa8c
Author: Jason Wang <jason77.wang@gmail.com> serial-core: skip call set_termios/console_start when no_console_suspend commit4547be7809
Author: Stanislav Brabec <sbrabec@suse.cz> serial-core: resume serial hardware with no_console_suspend commitba15ab0e8d
Author: Deepak Saxena <dsaxena@laptop.org> Set proper console speed on resume if console suspend is disabled fromba15ab0
, we learned that, even if the console suspend is disabled (when no_console_suspend is set), we may still need to "reset the port to the state it was in before we suspended." Then with4547be7
, this piece of code is removed. And then Jason Wang added that back in ca2e71a and891b9dd
, to fix some breakage on OMAP3EVM platform. From ca2e71a we learned that the "set_termios" things is actually needed by both console is suspended and not suspended. That's why I removed the console_suspended_enabled condition, and only call console_start() when we actually suspeneded it. I also noticed in this thread: http://marc.info/?t=129079257100004&r=1&w=2, which talked about on some platforms, UART HW will be cut power whether or not we set no_console_suspend, and then on resume it does not work quite well. I have a similar HW, and this patch fixed this issue, don't know if this patch also works on their platforms. [Update: Stanislav tested this patch on Zaurus and reported it improves the situation. Thanks.] CC: Greg KH <greg@kroah.com> CC: Deepak Saxena <dsaxena@laptop.org> CC: Jason Wang <jason77.wang@gmail.com> CC: Stanislav Brabec <sbrabec@suse.cz> CC: Daniel Drake <dsd@laptop.org> Signed-off-by: Yin Kangkai <kangkai.yin@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
d8653d305e
commit
5933a161ab
@ -2064,7 +2064,7 @@ 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)) {
|
||||
if (uart_console(uport)) {
|
||||
/*
|
||||
* First try to use the console cflag setting.
|
||||
*/
|
||||
@ -2077,9 +2077,9 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *uport)
|
||||
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);
|
||||
if (console_suspend_enabled)
|
||||
console_start(uport->cons);
|
||||
}
|
||||
|
||||
if (port->flags & ASYNC_SUSPENDED) {
|
||||
|
Loading…
Reference in New Issue
Block a user