On Thu, Dec 01, 2011 at 11:30:16AM -0700, Paul Walmsley wrote:
So for example, if you had a driver that did:
c = clk_get(dev, clk_name); clk_enable(c); clk_set_rate(c, clk_rate);
and c was currently not enabled by any other driver on the system, and nothing else had called clk_block_rate_change(c), then the rate change would be allowed to proceed. (modulo any notifier activity, etc.)
So clk_{allow,block}_rate_change() was simply intended to allow or restrict other users of the same clock, not the current user.
Ah, sorry! I'd totally misunderstood what you were proposing.