diff mbox series

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

Message ID 20250623074606.456532-2-jirislaby@kernel.org
State New
Headers show
Series tty: fixes on top of summer cleanup | expand

Commit Message

Jiri Slaby June 23, 2025, 7:46 a.m. UTC
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(-)

Comments

Andy Shevchenko June 23, 2025, 6:11 p.m. UTC | #1
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;
> -	}
Jiri Slaby June 24, 2025, 5:29 a.m. UTC | #2
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 mbox series

Patch

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: