fix early_serial_setup() regression
Commit b430428a18
("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: Kyle McMartin <kyle@mcmartin.ca>
Cc: linux-parisc@vger.kernel.org
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
e0b325d310
commit
125c97d8a5
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue