From: Pali Rohár <pali@xxxxxxxxxx> Use DIV_ROUND_CLOSEST() for more accurate baudrate calculation for ASYNC_SPD_CUST instead of rounding it just down. Signed-off-by: Pali Rohár <pali@xxxxxxxxxx> Tested-by: Marek Behún <kabel@xxxxxxxxxx> --- drivers/usb/serial/ftdi_sio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 30744d5779e2..ac84d5779966 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c @@ -1317,7 +1317,7 @@ static u32 get_ftdi_divisor(struct tty_struct *tty, if (baud == 38400 && ((priv->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST) && (priv->custom_divisor)) { - baud = priv->baud_base / priv->custom_divisor; + baud = DIV_ROUND_CLOSEST(priv->baud_base, priv->custom_divisor); dev_dbg(dev, "%s - custom divisor %d sets baud rate to %d\n", __func__, priv->custom_divisor, baud); } -- 2.35.1