>> -----Original Message----- >> From: Mike Turquette [mailto:[email protected]] >> Sent: Friday, September 14, 2012 2:56 PM >> To: Karicheri, Muralidharan >> Cc: [email protected]; [email protected] - >> MPBU >> Linux Development Team (May contain non-TIers) >> Subject: Re: common clock API clk_prepare() and run time power management >> >> Quoting Karicheri, Muralidharan (2012-09-14 09:25:40) >> > Hi Mike, >> > >> > >> > >> > During my common clock migration work for DaVinci, I got a problem in >> > davinci >> > mdio driver that calls the clk_enable() through run time power management >> > API >> > and got following WARNING in drivers/clk/clk.c. Could you help me >> > understand >> > how clk_prepare() gets called in this scenario and what I need to take are >> > to >> > have this work for common clock framework? >> > >> >> <snip> >> > WARNING: at drivers/clk/clk.c:512 __clk_enable+0x98/0xa4() >> > >> >> Hi Murali, >> >> That warning is tripped because clk->prepare_count is 0 and you're >> calling clk_enable, which is bad. >> >> clk_prepare must be called (and complete) before calling clk_enable. >> For most platforms clk_prepare is a no-op, but for correctness sake your >> driver (or PM runtime callbacks) must call clk_prepare first. >> >> This is why the new clk_prepare_enable call has become popular. >> >> Note that clk_prepare may sleep, so don't call it from interrupt >> context. >> >> See the kerneldoc in include/linux/clk.h and also Documentation/clk.txt >> for more details and let me know if you need further explanation. >>
Mike, In the case of PM, I believe the base/power/clock_ops.c is calling clk_enable() and clk_disable(). Does this mean I need to submit a patch to convert these to clk_prepare_enable() or driver should prepare the clock by doing clk_prepare() and pass the same to PM. Doing it clock_ops.c seems to me the correct way. What do you think? For i2c driver, I have clk_prepare_enable() already in the driver, but I still see same issue. I am debugging it currently. Thanks Murali >> Regards, >> Mike _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
