diff options
Diffstat (limited to 'target/linux/ar7/patches-4.9/002-MIPS-AR7-ensure-the-port-type-s-FCR-value-is-used.patch')
-rw-r--r-- | target/linux/ar7/patches-4.9/002-MIPS-AR7-ensure-the-port-type-s-FCR-value-is-used.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/target/linux/ar7/patches-4.9/002-MIPS-AR7-ensure-the-port-type-s-FCR-value-is-used.patch b/target/linux/ar7/patches-4.9/002-MIPS-AR7-ensure-the-port-type-s-FCR-value-is-used.patch new file mode 100644 index 0000000000..cc1a541a3e --- /dev/null +++ b/target/linux/ar7/patches-4.9/002-MIPS-AR7-ensure-the-port-type-s-FCR-value-is-used.patch @@ -0,0 +1,48 @@ +From ee6c9d41de084b2cefd90e5e0c9f30a35f6d3967 Mon Sep 17 00:00:00 2001 +From: Jonas Gorski <jonas.gorski@gmail.com> +Date: Sun, 29 Oct 2017 15:50:42 +0100 +Subject: [PATCH RFC 3/3] MIPS: AR7: ensure the port type's FCR value is used + +Since commit aef9a7bd9b67 ("serial/uart/8250: Add tunable RX interrupt +trigger I/F of FIFO buffers"), the port's default FCR value isn't used +in serial8250_do_set_termios anymore, but copied over once in +serial8250_config_port and then modified as needed. + +Unfortunately, serial8250_config_port will never be called if the port +is shared between kernel and userspace, and the port's flag doesn't have +UPF_BOOT_AUTOCONF, which would trigger a serial8250_config_port as well. + +This causes garbled output from userspace: + +[ 5.220000] random: procd urandom read with 49 bits of entropy available +ers + [kee + +Fix this by forcing it to be configured on boot, resulting in the +expected output: + +[ 5.250000] random: procd urandom read with 50 bits of entropy available +Press the [f] key and hit [enter] to enter failsafe mode +Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level + +Fixes: aef9a7bd9b67 ("serial/uart/8250: Add tunable RX interrupt trigger I/F of FIFO buffers") +Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> +--- +I'm not sure if this is just AR7's issue, or if this points to a general +issue for UARTs used as kernel console and login console with the "fixed" +commit. + + arch/mips/ar7/platform.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/mips/ar7/platform.c ++++ b/arch/mips/ar7/platform.c +@@ -576,7 +576,7 @@ static int __init ar7_register_uarts(voi + uart_port.type = PORT_AR7; + uart_port.uartclk = clk_get_rate(bus_clk) / 2; + uart_port.iotype = UPIO_MEM32; +- uart_port.flags = UPF_FIXED_TYPE; ++ uart_port.flags = UPF_FIXED_TYPE | UPF_BOOT_AUTOCONF; + uart_port.regshift = 2; + + uart_port.line = 0; |