[PATCH v2 3/7] tty/serial: convert 8250 to generic earlycon
From: yinghai@kernel.org (Yinghai Lu)
Date: 2014-06-11 23:44:52
Also in:
linux-serial, lkml
On Wed, Jun 11, 2014 at 10:58 AM, Rob Herring [off-list ref] wrote:
quoted hunk ↗ jump to hunk
On 06/10/2014 03:52 PM, Tony Luck wrote: I think I figured it out. The function serial8250_find_port_for_earlycon is failing to match 'uart' console to 'ttyS' console and transfer the options. It was also failing to create an option string when the baud rate is probed. Can you try out the below patch? Rob 8<-------------------------------------------------------------------diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c index cfef801..4858b8a 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, if (!(device->port.membase || device->port.iobase)) return 0; - if (!device->baud) + if (!device->baud) { device->baud = probe_baud(&device->port); + snprintf(device->options, sizeof(device->options), "%u", + device->baud); + } init_port(device);diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c index 5131b5e..d20e6d8 100644 --- a/drivers/tty/serial/earlycon.c +++ b/drivers/tty/serial/earlycon.c@@ -25,7 +25,7 @@ #include <asm/serial.h> static struct console early_con = { - .name = "earlycon", + .name = "uart", .flags = CON_PRINTBUFFER | CON_BOOT, .index = -1, };
Yes, that is right fix. For the name in early_con with "uart", please add some comments that serial8250_find_port_for_earlycon() will look for "uart"... Thanks Yinghai