Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 125c97d8 authored by Helge Deller's avatar Helge Deller Committed by Linus Torvalds
Browse files

fix early_serial_setup() regression



Commit b430428a ("8250: Don't clobber
spinlocks.") introduced a regression on the parisc architecture, which
broke the handover to the serial port at boottime.

early_serial_setup() was changed to only copy a subset of the uart_port
fields, and sadly the "type" and "line" fields were forgotten and thus
the serial port was not initialized and could not be used for a
handover.  This patch fixes this by copying the missing fields.

As this change to early_serial_setup() doesn't need an initialized
spinlock in the uart_port struct any longer, we can drop the spinlock
initialization in the superio driver.

Cc: David Daney <ddaney@caviumnetworks.com>
Cc: Tomaso Paoletti <tpaoletti@caviumnetworks.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Acked-by: default avatarKyle McMartin <kyle@mcmartin.ca>
Cc: linux-parisc@vger.kernel.org
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e0b325d3
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -405,7 +405,6 @@ static void __init superio_serial_init(void)
	serial_port.type	= PORT_16550A;
	serial_port.uartclk	= 115200*16;
	serial_port.fifosize	= 16;
	spin_lock_init(&serial_port.lock);

	/* serial port #1 */
	serial_port.iobase	= sio_dev.sp1_base;
+2 −0
Original line number Diff line number Diff line
@@ -2839,6 +2839,8 @@ int __init early_serial_setup(struct uart_port *port)
	p->flags        = port->flags;
	p->mapbase      = port->mapbase;
	p->private_data = port->private_data;
	p->type		= port->type;
	p->line		= port->line;

	set_io_from_upio(p);
	if (port->serial_in)