summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Pei <cp0613@linux.alibaba.com>2025-09-13 15:08:15 +0800
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2025-09-22 19:13:08 +0200
commit4d330fe54145ecfbb657ac01a554fdedf3c1927e (patch)
treed540a33873da17a7258bd8fbda1b291444f55137
parentbf4206d7ac278bbd1eb2cf02d25486c2cc61b298 (diff)
ACPI: SPCR: Support Precise Baud Rate field
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 [1] 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>
-rw-r--r--drivers/acpi/spcr.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/acpi/spcr.c b/drivers/acpi/spcr.c
index 208d6bbc65e0..d4d52d5e9016 100644
--- a/drivers/acpi/spcr.c
+++ b/drivers/acpi/spcr.c
@@ -149,7 +149,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.