serial: also set the uartclk value in resume after goes to highspeed
authorYin Kangkai <kangkai.yin@linux.intel.com>
Wed, 9 Feb 2011 03:34:20 +0000 (11:34 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 17 Feb 2011 19:23:49 +0000 (11:23 -0800)
For any reason if the NS16550A was not work in high speed mode (e.g. we hold
NS16550A from going to high speed mode in autoconfig_16550a()), now we are
resume from suspend, we should also set the uartclk to the correct
value. Otherwise it is still the old 1843200 and that will bring issues.

CC: Greg Kroah-Hartman <greg@kroah.com>
CC: David Woodhouse <dwmw2@infradead.org>
CC: linux-kernel@vger.kernel.org
CC: stable@kernel.org
Signed-off-by: Yin Kangkai <kangkai.yin@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/tty/serial/8250.c

index 3975df6f7fdba6f4bff57f9c7fa05a8ae1bbeadf..c10a6a909c7641658aee66f0355f4fe309997e88 100644 (file)
@@ -3036,6 +3036,7 @@ void serial8250_resume_port(int line)
                serial_outp(up, 0x04, tmp);
 
                serial_outp(up, UART_LCR, 0);
+               up->port.uartclk = 921600*16;
        }
        uart_resume_port(&serial8250_reg, &up->port);
 }