• David Woodhouse's avatar
    NS16550A: Restore HS settings in EXCR2 on resume · b5b82df6
    David Woodhouse authored
    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: default avatarDavid Woodhouse <dwmw2@infradead.org>
    Acked-by: default avatarAlan Cox <alan@redhat.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    b5b82df6
8250.c 72.6 KB