Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Nicolas Schichan <nschichan@freebox.fr>
Cc: linux-mips@linux-mips.org
Cc: linux-serial@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/17544/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

authored by

Jonas Gorski and committed by
Ralf Baechle
0a5191ef 44cae9b2

+1 -1
+1 -1
arch/mips/ar7/platform.c
··· 575 575 uart_port.type = PORT_AR7; 576 576 uart_port.uartclk = clk_get_rate(bus_clk) / 2; 577 577 uart_port.iotype = UPIO_MEM32; 578 - uart_port.flags = UPF_FIXED_TYPE; 578 + uart_port.flags = UPF_FIXED_TYPE | UPF_BOOT_AUTOCONF; 579 579 uart_port.regshift = 2; 580 580 581 581 uart_port.line = 0;