aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2014-09-10 15:29:59 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-09-26 12:01:56 -0400
commit59b3e898ddfc81a65975043b5eb44103cc29ff6e (patch)
treec977aa53ea1877efb4f6413fc9919bc1c12fc9e8 /drivers/tty/serial
parent0aa525d11859c1a4d5b78fdc704148e2ae03ae13 (diff)
tty: serial: 8250_core: use the ->line argument as a hint in serial8250_find_match_or_unused()
Tony noticed that the old omap-serial driver picked the uart "number" based on the hint given from device tree or platform device's id. The 8250 based omap driver doesn't do this because the core code does not honour the ->line argument which is passed by the driver. This patch aims to keep the same behaviour as with omap-serial. The function will first try to use the line suggested ->line argument and then fallback to the old strategy in case the port is taken. That means the the third uart will always be ttyS2 even if the previous two have not been enabled in DT. Reviewed-by: Tony Lindgren <tony@atomide.com> Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial')
-rw-r--r--drivers/tty/serial/8250/8250_core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
index 547afde9fdda..ac88e66df65d 100644
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -3516,6 +3516,11 @@ static struct uart_8250_port *serial8250_find_match_or_unused(struct uart_port *
3516 if (uart_match_port(&serial8250_ports[i].port, port)) 3516 if (uart_match_port(&serial8250_ports[i].port, port))
3517 return &serial8250_ports[i]; 3517 return &serial8250_ports[i];
3518 3518
3519 /* try line number first if still available */
3520 i = port->line;
3521 if (i < nr_uarts && serial8250_ports[i].port.type == PORT_UNKNOWN &&
3522 serial8250_ports[i].port.iobase == 0)
3523 return &serial8250_ports[i];
3519 /* 3524 /*
3520 * We didn't find a matching entry, so look for the first 3525 * We didn't find a matching entry, so look for the first
3521 * free entry. We look for one which hasn't been previously 3526 * free entry. We look for one which hasn't been previously