]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ACPI: SPCR: Support Precise Baud Rate field
authorChen Pei <cp0613@linux.alibaba.com>
Sat, 13 Sep 2025 07:08:15 +0000 (15:08 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:34:07 +0000 (15:34 -0500)
[ Upstream commit 4d330fe54145ecfbb657ac01a554fdedf3c1927e ]

The Microsoft Serial Port Console Redirection (SPCR) specification
revision 1.09 comprises additional field: Precise Baud Rate [1].

It is used to describe non-traditional baud rates (such as those
used by high-speed UARTs).

It contains a specific non-zero baud rate which overrides the value
of the Configured Baud Rate field. If this field is zero or not
present, Configured Baud Rate is used.

Link: https://learn.microsoft.com/en-us/windows-hardware/drivers/serports/serial-port-console-redirection-table
Signed-off-by: Chen Pei <cp0613@linux.alibaba.com>
Link: https://patch.msgid.link/20250913070815.16758-1-cp0613@linux.alibaba.com
[ rjw: Corrected typo in the subject ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/acpi/spcr.c

index cd36a97b0ea2c7e31bb0a72501c0ee938b163f30..fa12e740386de0a21897cd414e3dbd0aa29af212 100644 (file)
@@ -146,7 +146,15 @@ int __init acpi_parse_spcr(bool enable_earlycon, bool enable_console)
                goto done;
        }
 
-       switch (table->baud_rate) {
+       /*
+        * SPCR 1.09 defines Precise Baud Rate Filed contains a specific
+        * non-zero baud rate which overrides the value of the Configured
+        * Baud Rate field. If this field is zero or not present, Configured
+        * Baud Rate is used.
+        */
+       if (table->precise_baudrate)
+               baud_rate = table->precise_baudrate;
+       else switch (table->baud_rate) {
        case 0:
                /*
                 * SPCR 1.04 defines 0 as a preconfigured state of UART.