W dniu 2015-08-10 o 14:22, Fabio Estevam pisze:
On Mon, Aug 10, 2015 at 9:12 AM, Stefan Wahren <stefan.wahren@xxxxxxxx> wrote:
/* set baud rate */
- baud = uart_get_baud_rate(u, termios, old, 0, u->uartclk);
+ baud_min = u->uartclk * 32 / 0x3fffc0;
+ baud_max = u->uartclk * 32 / 0xec;
+ baud = uart_get_baud_rate(u, termios, old, baud_min, baud_max);
Looks good. It would be nice to replace 0x3fffc0 and 0xec with defines though.
I agree with Fabio.
In addition let's look at the example for uartclk = 24MHz:
baud_max = 3,254,237.29 => will be rounded down to 3,254,237bauds and it
is OK
baud_min = 183.1 => will be rounded to 183 bauds. To avoid div=0x400971
it should be 184
so DIV_ROUND_UP() macro could be used.
best regards
Janusz
Regards,
Fabio Estevam
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html