RE: [RFC - PATCH] base:pm: prepare driver for common clock framework

From: Karicheri, Muralidharan
Date: Wed Sep 19 2012 - 10:09:13 EST


>> -----Original Message-----
>> From: Rafael J. Wysocki [mailto:rjw@xxxxxxx]
>> Sent: Tuesday, September 18, 2012 5:34 PM
>> To: Karicheri, Muralidharan
>> Cc: linux-pm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Chemparathy, Cyril;
>> mturquette@xxxxxxxxxx; 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@xxxxxx>
>>
>> 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");
>> > }
>> >

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/