Re: [PATCH 1/2] clk: ingenic: Fix round_rate misbehaving with non-integer dividers

From: Stephen Boyd
Date: Fri Feb 22 2019 - 13:17:31 EST


Quoting Paul Cercueil (2019-01-27 18:09:20)
> Take a parent rate of 180 MHz, and a requested rate of 4.285715 MHz.
> This results in a theorical divider of 41.999993 which is then rounded
> up to 42. The .round_rate function would then return (180 MHz / 42) as
> the clock, rounded down, so 4.285714 MHz.
>
> Calling clk_set_rate on 4.285714 MHz would round the rate again, and
> give a theorical divider of 42,0000028, now rounded up to 43, and the
> rate returned would be (180 MHz / 43) which is 4.186046 MHz, aka. not
> what we requested.
>
> Fix this by rounding up the divisions.
>
> Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx>
> Tested-by: Maarten ter Huurne <maarten@xxxxxxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>
> ---

Applied to clk-next