OSDN Git Service

serial: sh-sci: Take into account sampling rate for max baud rate
authorGeert Uytterhoeven <geert+renesas@glider.be>
Thu, 19 Nov 2015 13:35:09 +0000 (14:35 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Thu, 17 Dec 2015 10:18:41 +0000 (11:18 +0100)
The maximum baud rate depends on the sampling rate.
HSCIF has a variable sampling rate and sets s->sampling_rate to zero,
hence use the minimum sampling rate of 8.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sh-sci.c

index d89d4b7..5b12075 100644 (file)
@@ -1975,7 +1975,10 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
         * that the previous boot loader has enabled required clocks and
         * setup the baud rate generator hardware for us already.
         */
-       max_baud = port->uartclk ? port->uartclk / 16 : 115200;
+       if (port->uartclk)
+               max_baud = port->uartclk / max(s->sampling_rate, 8U);
+       else
+               max_baud = 115200;
 
        baud = uart_get_baud_rate(port, termios, old, 0, max_baud);
        if (likely(baud && port->uartclk))