[PATCH 25/40] ARM: imx: add common clock support for clk busy

Stephen Boyd sboyd at codeaurora.org
Wed Apr 11 18:21:29 EDT 2012


On 04/10/12 23:53, Sascha Hauer wrote:
> On Tue, Apr 10, 2012 at 11:59:13AM -0700, Stephen Boyd wrote:
>> On 04/10/12 06:45, Sascha Hauer wrote:
>>> +static int clk_busy_wait(void __iomem *reg, u8 shift)
>>> +{
>>> +	unsigned long timeout = jiffies + msecs_to_jiffies(10);
>>> +
>>> +	while (readl_relaxed(reg) & (1 << shift))
>>> +		if (time_after(jiffies, timeout))
>>> +			return -ETIMEDOUT;
>>> +
>>> +	return 0;
>>> +}
>> MSM also has a bit to poll to see if a clock is enabled or not, similar
>> to this rate switch complete bit. Would it make sense to have another
>> few clock ops like wait_for_enable(), wait_for_rate(),
>> wait_for_disable()? Then you should be able to copy the basic divider
>> ops and assign the wait ops and avoid the wrappers.
> I think this won't work. What arguments would your wait_for_* functions
> take?

I assume the same as what all the other ops take.

wait_for_disable(struct clk_hw *hw)
wait_for_enable(struct clk_hw *hw)
wait_for_rate(struct clk_hw *hw)

Do you see the need for anything else?

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.




More information about the linux-arm-kernel mailing list