[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <152792071704.225090.10103969745756087817@swboyd.mtv.corp.google.com>
Date: Fri, 01 Jun 2018 23:25:17 -0700
From: Stephen Boyd <sboyd@...nel.org>
To: Mike Looijmans <mike.looijmans@...ic.nl>, linux-clk@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, mturquette@...libre.com,
Mike Looijmans <mike.looijmans@...ic.nl>
Subject: Re: [PATCH] clk-si544: Properly round requested frequency to nearest match
Quoting Mike Looijmans (2018-05-31 07:03:55)
> The si544 driver had a rounding problem that using the result of clk_round_rate
> may set the clock to yet another rate, for example:
> clk_round_rate(195000000) = 194999999
> clk_round_rate(194999999) = 194999998
>
> Clients would expect that after clk_set_rate(clk, freq2=clk_round_rate(clk, freq)) the
> chip will be running at exactly freq2.
>
> The problem was in the calculation of the feedback divider, it was always rounded
> down instead of to the nearest possible VCO value.
>
> After this change, the following holds true for any supported frequency:
> actual_freq = clk_round_rate(clk, freq);
> clk_set_rate(clk, actual_freq);
> clk_round_rate(clk, actual_freq) == actual_freq && clk_get_rate(clk) == actual_freq
>
> Signed-off-by: Mike Looijmans <mike.looijmans@...ic.nl>
> ---
Applied to clk-next
Powered by blists - more mailing lists