[PATCH 1/5] serial: 8250: extract serial8250_init_mctrl()

From: Jiri Slaby (SUSE)
Date: Mon Jun 23 2025 - 03:46:47 EST


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@xxxxxxxxxx>
Suggested-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
---
drivers/tty/serial/8250/8250_port.c | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)

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:
--
2.49.0