]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commitdiff
ACPI: SPCR: Consider baud rate 0 as preconfigured state
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 21 Nov 2018 13:43:37 +0000 (15:43 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 26 Nov 2018 17:29:47 +0000 (18:29 +0100)
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@linux.intel.com>
Reviewed-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/spcr.c

index 9d52743080a4f65200ea6e33f0d0d2fefdb881ea..c336784d0bcbeabd86a7bd27150342058b3c2af0 100644 (file)
@@ -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 {