Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> writes: > On Wed, Jun 26, 2019 at 05:11:31PM +0300, Sergey Organov wrote: >> set_termios() shouldn't set UCR2_CTSC bit if UCR2_CTS (=TIOCM_RTS) is >> cleared. Added corresponding check in imx_uart_rts_auto() to fix this. >> >> Reviewed-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> >> Tested-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> >> Signed-off-by: Sergey Organov <sorganov@xxxxxxxxx> >> --- >> drivers/tty/serial/imx.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c >> index e0f5365..4867f80 100644 >> --- a/drivers/tty/serial/imx.c >> +++ b/drivers/tty/serial/imx.c >> @@ -405,7 +405,8 @@ static void imx_uart_rts_inactive(struct imx_port *sport, u32 *ucr2) >> /* called with port.lock taken and irqs caller dependent */ >> static void imx_uart_rts_auto(struct imx_port *sport, u32 *ucr2) >> { >> - *ucr2 |= UCR2_CTSC; >> + if (*ucr2 & UCR2_CTS) >> + *ucr2 |= UCR2_CTSC; >> } > > I wonder if this patch is only correct in the presence of the previous > patch. With the code currently in mainline imx_uart_rts_auto() is only > called with UCR2_CTS unset. Yes, exactly. Thanks! -- Sergey