On Thu, Feb 26, 2009 at 07:59:45PM +0000, Mark Brown wrote: > +static int s3c64xx_clk_arm_set_rate(struct clk *clk, unsigned long rate) > +{ > + unsigned int div; > + u32 val; > + unsigned long flags; > + > + rate = clk_round_rate(clk, rate); Hmm. Does both clk_set_rate() (which will then call this method) and clk_round_rate() both take the same spinlock? Since clk_round_rate() is supposed to tell you what rate you end up with if you were to ask for clk_set_rate() to set it for you, maybe the actual clk_set_rate() implementation should be pre-rounding the rate using the round_rate() method before calling these set_rate() methods, so they don't have to? That would ensure that round_rate() does return the right thing (if it doesn't you won't get the right rate from set_rate). -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html