diff --git a/[refs] b/[refs] index 5e1afbd45e1a..293777e824e5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c194588dba968510b5aa7a1818bd2c8b36a416f7 +refs/heads/master: 4d5e392c33820dc8861423bb1b8dae205ea0ad3d diff --git a/trunk/drivers/serial/atmel_serial.c b/trunk/drivers/serial/atmel_serial.c index 61db2166fbb5..955c46da5800 100644 --- a/trunk/drivers/serial/atmel_serial.c +++ b/trunk/drivers/serial/atmel_serial.c @@ -793,8 +793,14 @@ static void __init atmel_console_get_options(struct uart_port *port, int *baud, else if (mr == ATMEL_US_PAR_ODD) *parity = 'o'; + /* + * The serial core only rounds down when matching this to a + * supported baud rate. Make sure we don't end up slightly + * lower than one of those, as it would make us fall through + * to a much lower baud rate than we really want. + */ quot = UART_GET_BRGR(port); - *baud = port->uartclk / (16 * (quot)); + *baud = port->uartclk / (16 * (quot - 1)); } static int __init atmel_console_setup(struct console *co, char *options)