Message ID | 20250623074606.456532-2-jirislaby@kernel.org |
---|---|
State | New |
Headers | show |
Series | tty: fixes on top of summer cleanup | expand |
Mon, Jun 23, 2025 at 09:46:02AM +0200, Jiri Slaby (SUSE) kirjoitti: > After commit 795158691cc0 ("serial: 8250: extract > serial8250_initialize()"), split serial8250_initialize() even more -- > the mctrl part of this code can be separated into > serial8250_init_mctrl() -- done now. ... > +static void serial8250_init_mctrl(struct uart_port *port) > +{ > + struct uart_8250_port *up = up_to_u8250p(port); > + > + if (up->port.flags & UPF_FOURPORT) { > + if (!up->port.irq) > + up->port.mctrl |= TIOCM_OUT1; I am not sure I understand why it was changed from using port directly to up->port. > + } else > + /* > + * Most PC uarts need OUT2 raised to enable interrupts. > + */ > + if (port->irq) > + up->port.mctrl |= TIOCM_OUT2; Having {} in this branch is also better. > + serial8250_set_mctrl(port, port->mctrl); > +} ... I specifically left below to point out the original code. > - if (port->flags & UPF_FOURPORT) { > - if (!port->irq) > - port->mctrl |= TIOCM_OUT1; > - } else { > - /* Most PC uarts need OUT2 raised to enable interrupts. */ > - if (port->irq) > - port->mctrl |= TIOCM_OUT2; > - }
On 23. 06. 25, 20:11, Andy Shevchenko wrote: > Mon, Jun 23, 2025 at 09:46:02AM +0200, Jiri Slaby (SUSE) kirjoitti: >> After commit 795158691cc0 ("serial: 8250: extract >> serial8250_initialize()"), split serial8250_initialize() even more -- >> the mctrl part of this code can be separated into >> serial8250_init_mctrl() -- done now. > > ... > >> +static void serial8250_init_mctrl(struct uart_port *port) >> +{ >> + struct uart_8250_port *up = up_to_u8250p(port); >> + >> + if (up->port.flags & UPF_FOURPORT) { >> + if (!up->port.irq) >> + up->port.mctrl |= TIOCM_OUT1; > > I am not sure I understand why it was changed from using port directly to > up->port. Ugh, that's a mistake. During rebase likely. Thanks for catching.
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 48c30e158cb8..ca82ce26715a 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -2216,6 +2216,23 @@ static void serial8250_THRE_test(struct uart_port *port) up->bugs |= UART_BUG_THRE; } +static void serial8250_init_mctrl(struct uart_port *port) +{ + struct uart_8250_port *up = up_to_u8250p(port); + + if (up->port.flags & UPF_FOURPORT) { + if (!up->port.irq) + up->port.mctrl |= TIOCM_OUT1; + } else + /* + * Most PC uarts need OUT2 raised to enable interrupts. + */ + if (port->irq) + up->port.mctrl |= TIOCM_OUT2; + + serial8250_set_mctrl(port, port->mctrl); +} + static void serial8250_initialize(struct uart_port *port) { struct uart_8250_port *up = up_to_u8250p(port); @@ -2225,16 +2242,7 @@ static void serial8250_initialize(struct uart_port *port) serial_port_out(port, UART_LCR, UART_LCR_WLEN8); uart_port_lock_irqsave(port, &flags); - if (port->flags & UPF_FOURPORT) { - if (!port->irq) - port->mctrl |= TIOCM_OUT1; - } else { - /* Most PC uarts need OUT2 raised to enable interrupts. */ - if (port->irq) - port->mctrl |= TIOCM_OUT2; - } - - serial8250_set_mctrl(port, port->mctrl); + serial8250_init_mctrl(port); /* * Serial over Lan (SoL) hack:
After commit 795158691cc0 ("serial: 8250: extract serial8250_initialize()"), split serial8250_initialize() even more -- the mctrl part of this code can be separated into serial8250_init_mctrl() -- done now. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> --- drivers/tty/serial/8250/8250_port.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-)