[PATCH v3 1/5] clk: Add a basic multiplier clock
From: Stephen Boyd <hidden>
Date: 2015-10-05 18:09:29
Also in:
linux-clk
On 10/05, Maxime Ripard wrote:
Hi, On Fri, Oct 02, 2015 at 01:43:08PM -0700, Stephen Boyd wrote:quoted
On 09/29, Maxime Ripard wrote:quoted
+ + if (!val && mult->flags & CLK_MULTIPLIER_ZERO_BYPASS) + val = 1; + + return parent_rate * val; +} + +static bool __is_best_rate(unsigned long rate, unsigned long new, + unsigned long best, unsigned long flags) +{ + if (flags & CLK_MULTIPLIER_ROUND_CLOSEST)Is the only difference in this function vs the divider one that flag? Maybe we should make this function generic to the framework and pass a flag indicating closest or not.Actually, the logic is also reversed. The divider driver will always try to find some rate that is higher than the one we already have, without going above than the one requested. Here, we're tring to be lower than the best rate, without going below the requested rate.
So then a tri-state flag that indicates, closest, less than, greater than?
quoted
quoted
+ unsigned long val; + + if (mult->lock) + spin_lock_irqsave(mult->lock, flags);This needs the same "trick" that we did in the generic clock types to avoid sparse warnings.The __acquire call ?
Yes. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project