serial: sh-sci: Fix (AUTO)RTS in sci_init_pins()
authorGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 28 Mar 2017 09:13:46 +0000 (11:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 31 Mar 2017 13:29:06 +0000 (15:29 +0200)
commitcfa6eb239154315e6efcdda1d929e024097f927b
treec40e6e3c6f364688e1b037bec850c9f8ddc67cc3
parent5f76895e4c712b1b5af450cf344389b8c53ac2c2
serial: sh-sci: Fix (AUTO)RTS in sci_init_pins()

If a UART has dedicated RTS/CTS pins, and hardware control flow is
disabled (or AUTORTS is not yet effective), changing any serial port
configuration deasserts RTS, as .set_termios() calls sci_init_pins().

To fix this, consider the current (AUTO)RTS state when (re)initializing
the pins.  Note that for SCIFA/SCIFB, AUTORTS needs explicit
configuration of the RTS# pin function, while (H)SCIF handles this
automatically.

Fixes: d2b9775d795ec05f ("serial: sh-sci: Correct pin initialization on (H)SCIF")
Fixes: e9d7a45a03991349 ("serial: sh-sci: Add pin initialization for SCIFA/SCIFB")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sh-sci.c