Meaning of clk_round_rate()?
Russell King - ARM Linux
linux at arm.linux.org.uk
Wed Jul 14 16:03:24 EDT 2010
On Wed, Jul 14, 2010 at 11:05:46AM -0700, Stephen Boyd wrote:
> What is the meaning of clk_round_rate() in the clk API
> (include/linux/clk.h)? The function documentation says "adjust a rate to
> the exact rate a clock can provide". That seems pretty vague. I'm lead
> to believe that it rounds the rate to the closest rate supported. Is
> that correct? Is there some sort of error margin where beyond that it's
> no longer possible to be rounded? 0.5%? 1%?
clk_round_rate() returns the clock rate which will be set if you ask
clk_set_rate() to set that rate. It provides a way to query from
the implementation exactly what rate you'll get if you use clk_set_rate()
with that same argument.
So essentially, clk_set_rate() should be:
static int clk_set_rate(struct clk *clk, unsigned long rate)
{
rate = clk_round_rate(clk, rate);
return set_actual_rate(clk, rate);
}
More information about the linux-arm-kernel
mailing list