On Tue, Feb 01, 2011 at 10:05:56PM +0900, Jassi Brar wrote:
2011/2/1 Uwe Kleine-K?nig [off-list ref]:
.....
quoted
Do you plan to handle the case that clk_enable is called while prepare
isn't completed (considering the special case "not called at all")?
Maybe BUG_ON(clk->ops->prepare && !clk->prepare_count)?
Sounds better than the second option.
quoted
Alternatively don't force the sleep in clk_prepare (e.g. by protecting
prepare_count by a spinlock (probably enable_lock)) and call clk_prepare
before calling clk->ops->enable?
That might result in a driver working on some platforms(those have
atomic clk_prepare)
and not on others(those have sleeping).
The first option has the same result. E.g. on some platforms
clk->ops->prepare might be NULL, on others it's not.
Uwe
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |