serial: ns16550: use DIV_ROUND_CLOSEST macro to compute the divisor

The function still returns the same value.

The comment block is no longer necessary because our intention is
clear enough by using DIV_ROUND_CLOSEST() macro.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
master
Masahiro Yamada 10 years ago committed by Tom Rini
parent 841977df21
commit f8c7c2033d
  1. 10
      drivers/serial/serial_ns16550.c

@ -130,13 +130,9 @@ static int calc_divisor (NS16550_t port)
#endif
#define MODE_X_DIV 16
/* Compute divisor value. Normally, we should simply return:
* CONFIG_SYS_NS16550_CLK) / MODE_X_DIV / gd->baudrate
* but we need to round that value by adding 0.5.
* Rounding is especially important at high baud rates.
*/
return (CONFIG_SYS_NS16550_CLK + (gd->baudrate * (MODE_X_DIV / 2))) /
(MODE_X_DIV * gd->baudrate);
return DIV_ROUND_CLOSEST(CONFIG_SYS_NS16550_CLK,
MODE_X_DIV * gd->baudrate);
}
void

Loading…
Cancel
Save