Re: [PATCH] serial: sh-sci: Fix HSCIF RX sampling point calculation

From: Ulrich Hecht
Date: Mon Apr 01 2019 - 11:08:44 EST



> On April 1, 2019 at 1:25 PM Geert Uytterhoeven <geert+renesas@xxxxxxxxx> wrote:
>
>
> There are several issues with the formula used for calculating the
> deviation from the intended rate:
> 1. While min_err and last_stop are signed, srr and baud are unsigned.
> Hence the signed values are promoted to unsigned, which will lead
> to a bogus value of deviation if min_err is negative,
> 2. Srr is the register field value, which is one less than the actual
> sampling rate factor,
> 3. The divisions do not use rounding.
>
> Fix this by casting unsigned variables to int, adding one to srr, and
> using a single DIV_ROUND_CLOSEST().
>
> Fixes: 63ba1e00f178a448 ("serial: sh-sci: Support for HSCIF RX sampling point adjustment")
> Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>

Reviewed-by: Ulrich Hecht <uli+renesas@xxxxxxxx>

CU
Uli