tty: serial: meson: allow baud-rates higher than 115200
authorMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Sun, 15 Jan 2017 22:32:52 +0000 (23:32 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jan 2017 13:38:57 +0000 (14:38 +0100)
The vendor driver allows setting baud-rates higher than 115200 baud.
There is a check in the vendor driver which prevents using more than
115200 baud during startup, however it does not have such a check in
.set_termios.
Higher baud-rates are often used by the bluetooth modules embedded into
the SDIO wifi chips (Amlogic devices use brcmfmac based wifi chips quite
often, 2000000 baud seems to be a common value for the UART baud-rate in
Amlogic's "libbt").

I have tested this on a Meson GXL device with uart_A (to which the
bluetooth module is connected, where initialization times out with
115200 baud) and uart_AO (which I manually set to 2000000 baud  and then
connected with my USB UART adapter to that).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Tested-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/meson_uart.c

index 6aea0f4a916584175f0b5151e978d635974b34df..60f16795d16bd2f1012df899b1f01585dab74c9e 100644 (file)
@@ -364,7 +364,7 @@ static void meson_uart_set_termios(struct uart_port *port,
 
        writel(val, port->membase + AML_UART_CONTROL);
 
-       baud = uart_get_baud_rate(port, termios, old, 9600, 115200);
+       baud = uart_get_baud_rate(port, termios, old, 9600, 4000000);
        meson_uart_change_speed(port, baud);
 
        port->read_status_mask = AML_UART_TX_FIFO_WERR;