lib: utils/serial: Round UART8250 baud rate divisor to nearest integer

Previously, it was rounded down and that gives suboptimal results when
non-standard clock sources or baud rates are used.

Signed-off-by: Jakub Luzny <jakub.luzny@codasip.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
Jakub Luzny
2022-01-21 16:06:14 +01:00
committed by Anup Patel
parent 6ad8917b7e
commit ce4c0188d9

View File

@@ -101,7 +101,7 @@ int uart8250_init(unsigned long base, u32 in_freq, u32 baudrate, u32 reg_shift,
uart8250_in_freq = in_freq; uart8250_in_freq = in_freq;
uart8250_baudrate = baudrate; uart8250_baudrate = baudrate;
bdiv = uart8250_in_freq / (16 * uart8250_baudrate); bdiv = (uart8250_in_freq + 8 * uart8250_baudrate) / (16 * uart8250_baudrate);
/* Disable all interrupts */ /* Disable all interrupts */
set_reg(UART_IER_OFFSET, 0x00); set_reg(UART_IER_OFFSET, 0x00);