| From 9078204ca5c33ba20443a8623a41a68a9995a70d Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org> |
| Date: Fri, 25 Jun 2021 00:49:00 +0200 |
| Subject: serial: mvebu-uart: fix calculation of clock divisor |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Pali Rohár <pali@kernel.org> |
| |
| commit 9078204ca5c33ba20443a8623a41a68a9995a70d upstream. |
| |
| The clock divisor should be rounded to the closest value. |
| |
| Signed-off-by: Pali Rohár <pali@kernel.org> |
| Fixes: 68a0db1d7da2 ("serial: mvebu-uart: add function to change baudrate") |
| Cc: stable@vger.kernel.org # 0e4cf69ede87 ("serial: mvebu-uart: clarify the baud rate derivation") |
| Link: https://lore.kernel.org/r/20210624224909.6350-2-pali@kernel.org |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/tty/serial/mvebu-uart.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/tty/serial/mvebu-uart.c |
| +++ b/drivers/tty/serial/mvebu-uart.c |
| @@ -463,7 +463,7 @@ static int mvebu_uart_baud_rate_set(stru |
| * makes use of D to configure the desired baudrate. |
| */ |
| m_divisor = OSAMP_DEFAULT_DIVISOR; |
| - d_divisor = DIV_ROUND_UP(port->uartclk, baud * m_divisor); |
| + d_divisor = DIV_ROUND_CLOSEST(port->uartclk, baud * m_divisor); |
| |
| brdv = readl(port->membase + UART_BRDV); |
| brdv &= ~BRDV_BAUD_MASK; |