On 11/21/2018 08:43 AM, Andy Shevchenko wrote: > Since SPCR 1.04 [1] the baud rate of 0 means a preconfigured state of UART. > Assume firmware or bootloader configures console correctly. > > [1]: https://docs.microsoft.com/en-us/windows-hardware/drivers/serports/serial-port-console-redirection-table > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > --- > - assign baud rate to 0 when its encoded value is 0 > - don't put baud rate to console options if it's 0 > > drivers/acpi/spcr.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/acpi/spcr.c b/drivers/acpi/spcr.c > index 9d52743080a4..c336784d0bcb 100644 > --- a/drivers/acpi/spcr.c > +++ b/drivers/acpi/spcr.c > @@ -148,6 +148,13 @@ int __init acpi_parse_spcr(bool enable_earlycon, bool enable_console) > } > > switch (table->baud_rate) { > + case 0: > + /* > + * SPCR 1.04 defines 0 as a preconfigured state of UART. > + * Assume firmware or bootloader configures console correctly. > + */ > + baud_rate = 0; > + break; > case 3: > baud_rate = 9600; > break; > @@ -196,6 +203,10 @@ int __init acpi_parse_spcr(bool enable_earlycon, bool enable_console) > * UART so don't attempt to change to the baud rate state > * in the table because driver cannot calculate the dividers > */ > + baud_rate = 0; > + } > + > + if (!baud_rate) { > snprintf(opts, sizeof(opts), "%s,%s,0x%llx", uart, iotype, > table->serial_port.address); > } else { > OOC what happens if you pass in opts="uart,io,0x3f8,0" to setup_earlycon() and add_preferred_console() ? P.