W dniu 2015-08-10 o 14:22, Fabio Estevam pisze:
On Mon, Aug 10, 2015 at 9:12 AM, Stefan Wahren <[email protected]> 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-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to