NS16550A: Restore HS settings in EXCR2 on resume
authorDavid Woodhouse <dwmw2@infradead.org>
Thu, 17 May 2007 06:27:39 +0000 (14:27 +0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 17 May 2007 12:25:49 +0000 (05:25 -0700)
commitb5b82df6f461e66af821bff5b51f336af92d96b6
treeb0a782f0f97419082d9c40de7fcc9fd5fd560be2
parentc97a9e10eaee328e6eea9f76acf7bacd7d48ef56
NS16550A: Restore HS settings in EXCR2 on resume

After a suspend/resume cycle, the UART may have been reset into
low-speed mode -- either because it's actually been reset, or because
the firmware pokes at the old-style divisor registers. If we detected it
as a NS16550A SuperIO chip in the first place and set baud_base to
921600, then we should do so again in the resume path.

This patch adds that code to serial8250_resume_port(), and also makes
serial8250_resume() actually call serial8250_resume_port() for each port
instead of just calling uart_resume_port() directly. And thus fixes
serial port operation after suspend/resume.

It also fixes a bogus comment where we write the EXCR2 register with a
comment saying /* EXCR1 */

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/serial/8250.c