|
@@ -2752,12 +2752,23 @@ static struct uart_driver serial8250_reg = {
|
|
*/
|
|
*/
|
|
int __init early_serial_setup(struct uart_port *port)
|
|
int __init early_serial_setup(struct uart_port *port)
|
|
{
|
|
{
|
|
|
|
+ struct uart_port *p;
|
|
|
|
+
|
|
if (port->line >= ARRAY_SIZE(serial8250_ports))
|
|
if (port->line >= ARRAY_SIZE(serial8250_ports))
|
|
return -ENODEV;
|
|
return -ENODEV;
|
|
|
|
|
|
serial8250_isa_init_ports();
|
|
serial8250_isa_init_ports();
|
|
- serial8250_ports[port->line].port = *port;
|
|
|
|
- serial8250_ports[port->line].port.ops = &serial8250_pops;
|
|
|
|
|
|
+ p = &serial8250_ports[port->line].port;
|
|
|
|
+ p->iobase = port->iobase;
|
|
|
|
+ p->membase = port->membase;
|
|
|
|
+ p->irq = port->irq;
|
|
|
|
+ p->uartclk = port->uartclk;
|
|
|
|
+ p->fifosize = port->fifosize;
|
|
|
|
+ p->regshift = port->regshift;
|
|
|
|
+ p->iotype = port->iotype;
|
|
|
|
+ p->flags = port->flags;
|
|
|
|
+ p->mapbase = port->mapbase;
|
|
|
|
+ p->private_data = port->private_data;
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|