Re: [PATCH] tty/serial: atmel: fix fractional baud rate computation

From: Uwe Kleine-König
Date: Mon Sep 26 2016 - 02:18:06 EST


Hello,

On Wed, Sep 21, 2016 at 12:44:14PM +0200, Nicolas Ferre wrote:
> From: Alexey Starikovskiy <aystarik@xxxxxxxxx>
>
> The problem with previous code was it rounded values in wrong
> place and produced wrong baud rate in some cases.
>
> Signed-off-by: Alexey Starikovskiy <aystarik@xxxxxxxxx>
> [nicolas.ferre@xxxxxxxxx: port to newer kernel and add commit log]
> Signed-off-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>

I first thought this patch results in not always picking the optimal
divider in some cases. But given the right error function (i.e.
error(r) = abs(1/r_target - 1/r_actual) which minimizes the error in the
time domain and so guarantees the maximal count of matched samples) it
can be proved to result in the right values (assuming no overflow etc.).

As writing formulas in email is cumbersome, see the attachment for a
prove.

Reviewed-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |

Attachment: baudrate.pdf
Description: Adobe PDF document