@@ -291,7 +291,7 @@ Flag to indicate whether to probe for a CMOS Real Time Clock irrespective of
ACPI indicating none to be there.
### com1,com2
-> `= <baud>[/<base-baud>][,[DPS][,[<io-base>|pci|amt][,[<irq>][,[<port-bdf>][,[<bridge-bdf>]]]]]]`
+> `= <baud>[/[<base-baud>][/[<reg-width>][/[<reg-shift>]]]][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]]`
Both option `com1` and `com2` follow the same format.
@@ -33,14 +33,14 @@
/*
* Configure serial port with a string:
- * <baud>[/<base_baud>][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]].
+ * <baud>[/[<base-baud>][/[<reg-width>][/[<reg-shift>]]]][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]].
* The tail of the string can be omitted if platform defaults are sufficient.
* If the baud rate is pre-configured, perhaps by a bootloader, then 'auto'
* can be specified in place of a numeric baud rate. Polled mode is specified
* by requesting irq 0.
*/
-static char __initdata opt_com1[30] = "";
-static char __initdata opt_com2[30] = "";
+static char __initdata opt_com1[50] = "";
+static char __initdata opt_com2[50] = "";
string_param("com1", opt_com1);
string_param("com2", opt_com2);
@@ -1118,6 +1118,20 @@ static void __init ns16550_parse_port_config(
uart->clock_hz = simple_strtoul(conf, &conf, 0) << 4;
}
+ if ( *conf == '/' )
+ {
+ conf++;
+ if ( *conf != '/' && *conf != ',' )
+ uart->reg_width = simple_strtol(conf, &conf, 0);
+ }
+
+ if ( *conf == '/' )
+ {
+ conf++;
+ if ( *conf != '/' && *conf != ',' )
+ uart->reg_shift = simple_strtol(conf, &conf, 0);
+ }
+
if ( *conf == ',' && *++conf != ',' )
{
uart->data_bits = simple_strtoul(conf, &conf, 10);