[RFC PATCH 2/5] clk: Introduce 'clk_round_rate_nearest()'
From: Stephen Boyd <hidden>
Date: 2014-05-20 17:48:48
Also in:
linux-pm, lkml
From: Stephen Boyd <hidden>
Date: 2014-05-20 17:48:48
Also in:
linux-pm, lkml
On 05/20/14 09:01, S?ren Brinkmann wrote:
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/260
Please 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. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation