From 0289ced4d5880c64c590e8b339999de8de395d5b Mon Sep 17 00:00:00 2001 From: Shmulik Ladkani Date: Wed, 9 Dec 2009 12:31:29 -0800 Subject: [PATCH] --- yaml --- r: 185175 b: refs/heads/master c: b5d228cc4f854aebcefac987d111fc072ecd15e0 h: refs/heads/master i: 185173: 60cacce93b17237ae3ca75605f98aba9898a1d0c 185171: 5a989f25d1f140f2e0121d51e127739e605dbaf3 185167: d4ce891907071c4a37829760e061160bb89a76c1 v: v3 --- [refs] | 2 +- trunk/drivers/serial/8250.c | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 7956f7f947c1..db9d565b683c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ccf68e59e93181df9353c0cc721459d18ff200b6 +refs/heads/master: b5d228cc4f854aebcefac987d111fc072ecd15e0 diff --git a/trunk/drivers/serial/8250.c b/trunk/drivers/serial/8250.c index a81ff7bc5fa1..7c4ebe6ee18b 100644 --- a/trunk/drivers/serial/8250.c +++ b/trunk/drivers/serial/8250.c @@ -2690,6 +2690,15 @@ static void __init serial8250_isa_init_ports(void) } } +static void +serial8250_init_fixed_type_port(struct uart_8250_port *up, unsigned int type) +{ + up->port.type = type; + up->port.fifosize = uart_config[type].fifo_size; + up->capabilities = uart_config[type].flags; + up->tx_loadsz = uart_config[type].tx_loadsz; +} + static void __init serial8250_register_ports(struct uart_driver *drv, struct device *dev) { @@ -2706,6 +2715,10 @@ serial8250_register_ports(struct uart_driver *drv, struct device *dev) struct uart_8250_port *up = &serial8250_ports[i]; up->port.dev = dev; + + if (up->port.flags & UPF_FIXED_TYPE) + serial8250_init_fixed_type_port(up, up->port.type); + uart_add_one_port(drv, &up->port); } } @@ -3118,12 +3131,8 @@ int serial8250_register_port(struct uart_port *port) if (port->dev) uart->port.dev = port->dev; - if (port->flags & UPF_FIXED_TYPE) { - uart->port.type = port->type; - uart->port.fifosize = uart_config[port->type].fifo_size; - uart->capabilities = uart_config[port->type].flags; - uart->tx_loadsz = uart_config[port->type].tx_loadsz; - } + if (port->flags & UPF_FIXED_TYPE) + serial8250_init_fixed_type_port(uart, port->type); set_io_from_upio(&uart->port); /* Possibly override default I/O functions. */