[PATCH v2 3/7] tty/serial: convert 8250 to generic earlycon

Yinghai Lu yinghai at kernel.org
Wed Jun 11 16:44:48 PDT 2014


On Wed, Jun 11, 2014 at 10:58 AM, Rob Herring <robherring2 at gmail.com> wrote:
> 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



More information about the linux-arm-kernel mailing list