[RFC PATCH 2/5] clk: Introduce 'clk_round_rate_nearest()'
From: Sören Brinkmann <hidden>
Date: 2014-05-20 21:50:33
Also in:
linux-pm, lkml
On Tue, 2014-05-20 at 10:48AM -0700, Stephen Boyd wrote:
On 05/20/14 09:01, S?ren Brinkmann wrote:quoted
quoted
quoted
quoted
quoted
+{ + unsigned long lower, upper, cur, lower_last, upper_last; + + lower = clk_round_rate(clk, rate); + if (lower >= rate) + return lower;Is the >-case worth a warning?No, it's correct behavior. If you request a rate that is way lower than what the clock can generate, returning something larger is perfectly valid, IMHO. Which reveals one problem in this whole discussion. The API does not require clk_round_rate() to round down. It is actually an implementation choice that had been made for clk-divider.I'm sure it's more than an implementation choice for clk-divider. But I don't find any respective documentation (but I didn't try hard).A similar discussion - without final conclusion: https://lkml.org/lkml/2010/7/14/260Please call this new API something like clk_find_nearest_rate() or something. clk_round_rate() is supposed to return the rate that will be set if you call clk_set_rate() with the same arguments. It's up to the implementation to decide if that means rounding the rate up or down or to the nearest value.
Sounds good to me. Are there any cases of clocks that round up? I think that case would not be handled correctly. But I also don't see a use case for such an implementation. S?ren