aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/8250
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2015-03-09 16:27:21 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-03-26 12:25:27 -0400
commit470ca0de69feaba5df215ad804cec1859883a5ed (patch)
treef6881a136d161bb131d56b9b68860568756b53eb /drivers/tty/serial/8250
parent7c53cb3de493573dc3b7f2468a542a9f11cc5079 (diff)
serial: earlycon: Enable earlycon without command line param
Earlycon matching can only be triggered if 'earlycon=...' has been specified on the kernel command line. To workaround this limitation requires tight coupling between arches and specific serial drivers in order to start an earlycon. Devicetree avoids this limitation with a link table that contains the required data to match earlycons. Mirror this approach for earlycon match by name. Re-purpose EARLYCON_DECLARE to generate a table entry which associates name with setup() function. Re-purpose setup_earlycon() to scan this table for an earlycon match, which is registered if found. Declare one "earlycon" early_param, which calls setup_earlycon(). This design allows setup_earlycon() to be called directly with a param string (as if 'earlycon=...' had been set on the command line). Re-registration (either directly or by early_param) is prevented. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/8250')
-rw-r--r--drivers/tty/serial/8250/8250_early.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
index b199c10689f4..d272139a5729 100644
--- a/drivers/tty/serial/8250/8250_early.c
+++ b/drivers/tty/serial/8250/8250_early.c
@@ -170,10 +170,5 @@ EARLYCON_DECLARE(uart, early_serial8250_setup);
170 170
171int __init setup_early_serial8250_console(char *cmdline) 171int __init setup_early_serial8250_console(char *cmdline)
172{ 172{
173 char match[] = "uart8250"; 173 return setup_earlycon(cmdline);
174
175 if (cmdline && cmdline[4] == ',')
176 match[4] = '\0';
177
178 return setup_earlycon(cmdline, match, early_serial8250_setup);
179} 174}