On Tue, Aug 16, 2022 at 3:14 PM Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> wrote: > > A number of places want to clear IER with the same CAP_UUE trick. > Create a helper for that. No objections, Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> > --- > drivers/tty/serial/8250/8250_port.c | 24 +++++++++++------------- > 1 file changed, 11 insertions(+), 13 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c > index 39b35a61958c..25e4761e3c57 100644 > --- a/drivers/tty/serial/8250/8250_port.c > +++ b/drivers/tty/serial/8250/8250_port.c > @@ -752,6 +752,14 @@ static void serial8250_set_sleep(struct uart_8250_port *p, int sleep) > serial8250_rpm_put(p); > } > > +static void serial8250_clear_IER(struct uart_8250_port *up) > +{ > + if (up->capabilities & UART_CAP_UUE) > + serial_out(up, UART_IER, UART_IER_UUE); > + else > + serial_out(up, UART_IER, 0); > +} > + > #ifdef CONFIG_SERIAL_8250_RSA > /* > * Attempts to turn on the RSA FIFO. Returns zero on failure. > @@ -1329,10 +1337,7 @@ static void autoconfig(struct uart_8250_port *up) > serial8250_out_MCR(up, save_mcr); > serial8250_clear_fifos(up); > serial_in(up, UART_RX); > - if (up->capabilities & UART_CAP_UUE) > - serial_out(up, UART_IER, UART_IER_UUE); > - else > - serial_out(up, UART_IER, 0); > + serial8250_clear_IER(up); > > out_unlock: > spin_unlock_irqrestore(&port->lock, flags); > @@ -2142,10 +2147,7 @@ static void serial8250_put_poll_char(struct uart_port *port, > * First save the IER then disable the interrupts > */ > ier = serial_port_in(port, UART_IER); > - if (up->capabilities & UART_CAP_UUE) > - serial_port_out(port, UART_IER, UART_IER_UUE); > - else > - serial_port_out(port, UART_IER, 0); > + serial8250_clear_IER(up); > > wait_for_xmitr(up, UART_LSR_BOTH_EMPTY); > /* > @@ -3383,11 +3385,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, > * First save the IER then disable the interrupts > */ > ier = serial_port_in(port, UART_IER); > - > - if (up->capabilities & UART_CAP_UUE) > - serial_port_out(port, UART_IER, UART_IER_UUE); > - else > - serial_port_out(port, UART_IER, 0); > + serial8250_clear_IER(up); > > /* check scratch reg to see if port powered off during system sleep */ > if (up->canary && (up->canary != serial_port_in(port, UART_SCR))) { > -- > 2.30.2 > -- With Best Regards, Andy Shevchenko