aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2014-06-12 13:52:44 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-06-19 16:07:26 -0400
commit60efcf0414be5876d81276e3c1fd12680ba2ce71 (patch)
treed3b9e6b9ed831137a8a326562855f444841e35c7 /drivers/tty/serial
parent66528f90669691c85c73bea4f0c9f4a5857c4cab (diff)
tty/serial: fix 8250 early console option passing to regular console
In the conversion to generic early console, the passing of options from the early 8250 console to the regular ttyS console was broken. This resulted in the baud rate changing when switching consoles during boot. This feature allows specifying a single console option on the kernel command line rather than both an early console and regular serial tty console. It would be nice to generalize this feature. However, it only works if the correct baud rate can be probed early which is not the case on many platforms which have non-standard UART clock rates. So for now, this is left as an 8250 specific feature. Reported-and-tested-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Rob Herring <robh@kernel.org> Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial')
-rw-r--r--drivers/tty/serial/8250/8250_early.c5
-rw-r--r--drivers/tty/serial/earlycon.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
index cfef801a49d4..4858b8a99d3b 100644
--- a/drivers/tty/serial/8250/8250_early.c
+++ b/drivers/tty/serial/8250/8250_early.c
@@ -144,8 +144,11 @@ static int __init early_serial8250_setup(struct earlycon_device *device,
144 if (!(device->port.membase || device->port.iobase)) 144 if (!(device->port.membase || device->port.iobase))
145 return 0; 145 return 0;
146 146
147 if (!device->baud) 147 if (!device->baud) {
148 device->baud = probe_baud(&device->port); 148 device->baud = probe_baud(&device->port);
149 snprintf(device->options, sizeof(device->options), "%u",
150 device->baud);
151 }
149 152
150 init_port(device); 153 init_port(device);
151 154
diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c
index 5131b5ee6164..a514ee6f5406 100644
--- a/drivers/tty/serial/earlycon.c
+++ b/drivers/tty/serial/earlycon.c
@@ -25,7 +25,7 @@
25#include <asm/serial.h> 25#include <asm/serial.h>
26 26
27static struct console early_con = { 27static struct console early_con = {
28 .name = "earlycon", 28 .name = "uart", /* 8250 console switch requires this name */
29 .flags = CON_PRINTBUFFER | CON_BOOT, 29 .flags = CON_PRINTBUFFER | CON_BOOT,
30 .index = -1, 30 .index = -1,
31}; 31};