lkml.org 
[lkml]   [2012]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [RFC - PATCH] base:pm: prepare driver for common clock framework
Date
>> -----Original Message-----
>> From: Rafael J. Wysocki [mailto:rjw@sisk.pl]
>> Sent: Tuesday, September 18, 2012 5:34 PM
>> To: Karicheri, Muralidharan
>> Cc: linux-pm@vger.kernel.org; linux-kernel@vger.kernel.org; Chemparathy, Cyril;
>> mturquette@linaro.org; Magnus Damm; Linux-sh list
>> Subject: Re: [RFC - PATCH] base:pm: prepare driver for common clock framework
>>
>> On Saturday, September 15, 2012, Murali Karicheri wrote:
>> > As part of my work to migrate davinci SoC code to
>> > use common clk framework, I encountered an issue with this driver
>> > which is calling clk_enable() and clk_disable() without prepare()/
>> > unprepare(). This change is needed to enable common clock migration
>> > for davinci SoCs.
>> >
>> > Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>>
>> There are other users of this code than davinci. For example, sh
>> and ARM/shmobile both use it. Have you verified that your changes will
>> work for them too?
>>
Rafael,

Technically do you agree with the changes or do I need to get it reviewed by someone in particular? I have no way of verifying if this works for sh and ARM/shmobile. I have copied this RFC patch to the list showed up by scripts/get_maintainer.pl list. Any idea how I can get this patch reviewed by the sh and ARM/shmobile maintainers and get it tested as well? This is required for DaVinci for sure unless there is an alternate way of doing this. Well, then that is the idea of sending an RFC patch.

-Murali

>> Rafael
>>
>>
>> > diff --git a/drivers/base/power/clock_ops.c b/drivers/base/power/clock_ops.c
>> > index eb78e96..9d8fde7 100644
>> > --- a/drivers/base/power/clock_ops.c
>> > +++ b/drivers/base/power/clock_ops.c
>> > @@ -99,7 +99,7 @@ static void __pm_clk_remove(struct pm_clock_entry *ce)
>> >
>> > if (ce->status < PCE_STATUS_ERROR) {
>> > if (ce->status == PCE_STATUS_ENABLED)
>> > - clk_disable(ce->clk);
>> > + clk_disable_unprepare(ce->clk);
>> >
>> > if (ce->status >= PCE_STATUS_ACQUIRED)
>> > clk_put(ce->clk);
>> > @@ -396,7 +396,7 @@ static void enable_clock(struct device *dev, const char
>> *con_id)
>> >
>> > clk = clk_get(dev, con_id);
>> > if (!IS_ERR(clk)) {
>> > - clk_enable(clk);
>> > + clk_prepare_enable(clk);
>> > clk_put(clk);
>> > dev_info(dev, "Runtime PM disabled, clock forced on.\n");
>> > }
>> > @@ -413,7 +413,7 @@ static void disable_clock(struct device *dev, const char
>> *con_id)
>> >
>> > clk = clk_get(dev, con_id);
>> > if (!IS_ERR(clk)) {
>> > - clk_disable(clk);
>> > + clk_disable_unprepare(clk);
>> > clk_put(clk);
>> > dev_info(dev, "Runtime PM disabled, clock forced off.\n");
>> > }
>> >



\
 
 \ /
  Last update: 2012-09-19 17:01    [W:0.043 / U:0.728 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site