[PATCH 0/4] clk: Provide option to unprepare unused clocks at late init

Ulf Hansson ulf.hansson at linaro.org
Fri Feb 8 03:33:13 EST 2013


On 24 January 2013 21:41, Ulf Hansson <ulf.hansson at linaro.org> wrote:
> Hi Mike,
>
> On 24 January 2013 19:49, Mike Turquette <mturquette at linaro.org> wrote:
>> Quoting Ulf Hansson (2013-01-24 08:45:52)
>>> From: Ulf Hansson <ulf.hansson at linaro.org>
>>>
>>> The disable_unused sequence executed at late init, is already handling the
>>> fast unused ungated clocks to be gated. This patchset extends this sequence to
>>> include the slow unused prepared clocks to be unprepared.
>>>
>>> The default behavior will not change in this patchset. To unprepare unused
>>> clocks during the disable_unused sequence, the clk_hw needs to implement
>>> the new optional callback, is_prepared.
>>>
>>> The motivation for this patchset is to save power. Clocks that is from
>>> bootloaders prepared|enabled, but not used should be unprepared|disabled.
>>>
>>> Patch 4 is specific for ux500, which implements the is_prepared callback
>>> for it's PRMCU clocks.
>>>
>>> Note that patch 1-3 has been sent earlier, but since a proof of concept
>>> patch could be useful, as patch 4 is, the hole patchset is resent.
>>>
>>
>> Hi Ulf,
>>
>> I had some minor discussion in patch #1.  Otherwise patches #2 & #3 look
>> good to me.
>>
>> Patch #4 is a bit interesting.  There is nothing wrong with it per se,
>> but the general layering of the prcmu power stuff is the opposite of how
>> I had envisioned things.  Your .prepare callback is making calls to some
>> pm_qos api but a quick grep did not reveal any definitions for those
>> functions, just some stubs in include/linux/mfd/dbx500-prcmu.h.
>>
>> Do these functions scale voltage?  I had figured that some day
>> per-device pm qos apis would call the clk api, not the other way around.
>
> You are right, these scale voltages. I would like to keep the code as
> is, just as a reminder that some devices using some clocks will
> requires these kind of operations.
> On our internal STE development track this is how it is used but we a
> are moving towards newer APIs.
>
> So I am definitely sharing the same thought as you do and my plan is
> to remove this code along the road, once drivers is adapted properly.
>
>>
>> Anyways that is just food for thought and no reason to block patch #4.
>>
>> Regards,
>> Mike
>>
>>> Ulf Hansson (4):
>>>   clk: Introduce optional is_prepared callback
>>>   clk: Unprepare the unused prepared slow clocks at late init
>>>   clk: Introduce optional unprepare_unused callback
>>>   clk: ux500: Support is_prepared callback for clk-prcmu
>>>
>>>  drivers/clk/clk.c             |   53 ++++++++++++++++
>>>  drivers/clk/ux500/clk-prcmu.c |  134 ++++++++++++++++++++++++-----------------
>>>  include/linux/clk-provider.h  |   11 ++++
>>>  3 files changed, 144 insertions(+), 54 deletions(-)
>>>
>>> --
>>> 1.7.10
>
> Thanks for the review comments!
>
> Kind regards
> Ulf Hansson

Ping, on this. Any issues merging this for 3.9?

Kind regards
Ulf Hansson



More information about the linux-arm-kernel mailing list