From: "Grygorii.Strashko@linaro.org" <grygorii.strashko@linaro.org>
To: Jim Quinlan <jim2101024@gmail.com>,
Michael Turquette <mturquette@linaro.org>
Cc: linux-clk@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com
Subject: Re: [PATCH] clk: export function clk_disable_unused()
Date: Thu, 28 May 2015 18:16:58 +0300 [thread overview]
Message-ID: <5567316A.9030003@linaro.org> (raw)
In-Reply-To: <CANCKTBsZr-Ew97TX60u416Lhw4tEBfMkDUGn1yw13ThMrz3z9Q@mail.gmail.com>
On 05/28/2015 05:21 PM, Jim Quinlan wrote:
> We are currently doing [1]. We'd like to change this so that we are
> the same as upstream barring a small syscore driver that will call
> clk_disable_unused() on S2/S3 resume. My patch reflects the
> suggestion found in [2], which says, "... It could still be generic by
> exporting the clk_disable_unused() function to drivers...".
>
> We do not have the general problems you are alluding to. With few
> exceptions, we do not yet use power domains or runtime PM, although of
> course this may change. Our drivers use either syscore calls or
> SIMPLE_DEV_PM_OPS() to turn off/on clocks as needed during S2/S3
> suspend/resume. The problem we have is when the software stack omits
> a driver or we have a new HW block which has no driver. On boot,
> clk_disable_unused() turns off the clocks that these missing drivers
> would normally use*. But on resumption of S2/S3, these clocks get
> turned on by HW, and all I am asking is that clk_disable_unused() be
> exported so a driver may invoke it to do the same thing it does during
> boot.
This issue is much more simpler then saving/restoring of clocks state, so
may be it can be solved first.
Taking to the account comments from [2] I think that could be
done inside clk core using PM notifiers,
and sysfs/module parameter can be used to enable/disable this feature, like:
PM_POST_SUSPEND:
PM_POST_HIBERNATION:
PM_RESTORE_PREPARE:
if (clk_disable_unused_on_suspend)
clk_disable_unused();
Mike, What do you think?
>
> * Why the HW turns these clocks on in the first place is a question I
> cannot answer.
> [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2014-December/311568.html
> [2] http://lists.infradead.org/pipermail/linux-arm-kernel/2014-December/311575.html
>
> On Sat, May 23, 2015 at 3:33 PM, Michael Turquette
> <mturquette@linaro.org> wrote:
>> Quoting Jim Quinlan (2015-05-15 15:22:36)
>>> For Broadcom STB chips, clocks may come up after resume in an "on"
>>> state, so calling clk_disable_unused() again will turn off unused
>>> clocks. This commit exports clk_disable_unused() so it may be
>>> called in such cases.
>>
>> Jim,
>>
>> Thanks for the patch.
>>
>> I think a more general solution to the problem might be needed. E.g. how
>> do we solve for the opposite case where after a low-power suspend/resume
>> we turn on clocks that were enabled by drivers before suspending, but
>> are disabled out of reset/post-transition?
>>
>> Additionally, it would be helpful to see your driver changes and how
>> exactly you plan to use this newly exported function.
>>
>> I've Cc'd Grygorii Strashko from TI. I faintly recall that he had an
>> out-of-tree solution to add some .suspend/.resume callbacks to struct
>> clk_ops. I didn't like that solution at the time either, but maybe we
>> can figure out a more natural way to handle these cases.
>>
>> (Grygorii: sorry in advance if this is a case of mistaken identity. I
>> could not find the code in question from my email archive)
>>
>> Regards,
>> Mike
--
regards,
-grygorii
next prev parent reply other threads:[~2015-05-28 15:16 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-15 22:22 [PATCH] clk: export function clk_disable_unused() Jim Quinlan
2015-05-23 19:33 ` Michael Turquette
2015-05-26 12:20 ` Grygorii.Strashko@linaro.org
2015-05-28 14:21 ` Jim Quinlan
2015-05-28 15:16 ` Grygorii.Strashko@linaro.org [this message]
2015-07-23 18:32 ` Michael Turquette
2015-08-03 21:40 ` Jim Quinlan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5567316A.9030003@linaro.org \
--to=grygorii.strashko@linaro.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=jim2101024@gmail.com \
--cc=linux-clk@vger.kernel.org \
--cc=mturquette@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.