Re: [PATCH v4 4/5] serial: 8250: Also set sticky MCR bits in console restoration
From: Andy Shevchenko
Date: Mon Apr 18 2022 - 08:24:33 EST
On Mon, Apr 18, 2022 at 2:02 AM Maciej W. Rozycki <macro@xxxxxxxxxxx> wrote:
>
> Sticky MCR bits are lost in console restoration if console suspending
> has been disabled. This currently affects the AFE bit, which works in
> combination with RTS which we set, so we want to make sure the UART
> retains control of its FIFO where previously requested. Also specific
> drivers may need other bits in the future.
Since it's a fix it should be moved to the beginning of the series.
Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
> Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxxx>
> Fixes: 4516d50aabed ("serial: 8250: Use canary to restart console after suspend")
> Cc: stable@xxxxxxxxxxxxxxx # v4.0+
> ---
> New change in v4, factored out from 5/5.
> ---
> drivers/tty/serial/8250/8250_port.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> linux-serial-8250-mcr-restore.diff
> Index: linux-macro/drivers/tty/serial/8250/8250_port.c
> ===================================================================
> --- linux-macro.orig/drivers/tty/serial/8250/8250_port.c
> +++ linux-macro/drivers/tty/serial/8250/8250_port.c
> @@ -3308,7 +3308,7 @@ static void serial8250_console_restore(s
>
> serial8250_set_divisor(port, baud, quot, frac);
> serial_port_out(port, UART_LCR, up->lcr);
> - serial8250_out_MCR(up, UART_MCR_DTR | UART_MCR_RTS);
> + serial8250_out_MCR(up, up->mcr | UART_MCR_DTR | UART_MCR_RTS);
> }
>
> /*
--
With Best Regards,
Andy Shevchenko