mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-01 18:53:02 +09:00
serial: sh-sci: Fix late enablement of AUTORTS
commit5f76895e4cupstream. 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: Baumann, Christoph (C.) <cbaumann@visteon.com> Fixes:33f50ffc25("serial: sh-sci: Fix support for hardware-assisted RTS/CTS") Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a50aacf5de
commit
ad3faea03f
@@ -2366,6 +2366,10 @@ done:
|
||||
*/
|
||||
udelay(DIV_ROUND_UP(10 * 1000000, baud));
|
||||
}
|
||||
if (port->flags & UPF_HARD_FLOW) {
|
||||
/* Refresh (Auto) RTS */
|
||||
sci_set_mctrl(port, port->mctrl);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SERIAL_SH_SCI_DMA
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user