Thread (128 messages) 128 messages, 19 authors, 2011-04-20

Locking in the clk API, part 2: clk_prepare/clk_unprepare

From: Uwe Kleine-König <hidden>
Date: 2011-02-01 14:01:04
Also in: linux-sh, lkml

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/  |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help