• Geert Uytterhoeven's avatar
    serial: sh-sci: Fix late enablement of AUTORTS · 5f76895e
    Geert Uytterhoeven authored
    When changing hardware control flow for a UART with dedicated RTS/CTS
    pins, the new AUTORTS state is not immediately reflected in the
    hardware, but only when RTS is raised.  However, the serial core does
    not call .set_mctrl() after .set_termios(), hence AUTORTS may only
    become effective when the port is closed, and reopened later.
    Note that this problem does not happen when manually using stty to
    change CRTSCTS, as AUTORTS will work fine on next open.
    
    To fix this, call .set_mctrl() from .set_termios() when dedicated
    RTS/CTS pins are present, to refresh the AUTORTS or RTS state.
    This is similar to what other drivers supporting AUTORTS do (e.g.
    omap-serial).
    Reported-by: default avatarBaumann, Christoph (C.) <cbaumann@visteon.com>
    Fixes: 33f50ffc ("serial: sh-sci: Fix support for hardware-assisted RTS/CTS")
    Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    5f76895e
sh-sci.c 78.6 KB