Re: Meaning of clk_round_rate()?

From: Russell King - ARM Linux
Date: Wed Jul 14 2010 - 16:04:18 EST


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);
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/