On Tue, Nov 25, 2014 at 03:30:20PM +0200, Grygorii Strashko wrote: > On 11/25/2014 02:09 PM, Arnd Bergmann wrote: > > It might be possible to do this implicitly if the driver calls clk_get(), > > basically doing clk_get() (or another call if necessary) would prevent the > > simple pmdomain from turning it off during suspend. > > Unfortunately, clk_get() will not work, because drivers still need to use it > to get functional clocks even if they are not going to control them explicitly. > For example, if it need to know clock's rate. If you don't want a clock to be turned off, then clk_get() it, then clk_prepare() it, and finally clk_enable() it. Even if someone else gets it, the only time that a clock is turned off is when _all_ users of it mutually agree that it can be turned off - by every user disabling (and possibly unpreparing) it. So, if the PM domain code gets a clock, prepares and enables it, then a driver gets the same clock, prepares and enables it also, it won't be disabled until _both_ the PM domain code _and_ the driver disable and unprepare the clock. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html