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

From: Nicolas Pitre
Date: Tue Feb 01 2011 - 15:06:19 EST


On Tue, 1 Feb 2011, Uwe Kleine-König wrote:

> My motivation for a more complicated clk_prepare was to make clk_prepare
> atomic when that's possible (i.e. when the clk is already prepared) and
> call it before the enable callback in clk_enable. Then everything
> behaves nicely even if clk_enable is called from atomic context provided
> that the clock was prepared before (or doesn't need to).

NOOOOOOOOO!!!

We _do_ want drivers to _always_ call clk_prepare() in sleepable
context, and _then_ always call clk_enable() in whatever context they
wish. Period.


Nicolas