mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Bill Huang <bilhuang@nvidia.com>,
	Peter De Schrijver <pdeschrijver@nvidia.com>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"patches@linaro.org" <patches@linaro.org>,
	"linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [RFC 1/1] clk: Add notifier support in clk_prepare_enable/clk_disable_unprepare
Date: Fri, 15 Mar 2013 13:38:51 -0600	[thread overview]
Message-ID: <514378CB.1060605@wwwdotorg.org> (raw)
In-Reply-To: <CAPDyKFpHz6KCNbVe2AsDuzZw-oN7NyRzCA=RatWA+9iMaQ7C+Q@mail.gmail.com>

On 03/15/2013 06:33 AM, Ulf Hansson wrote:
> On 15 March 2013 13:06, Bill Huang <bilhuang@nvidia.com> wrote:
>> On Fri, 2013-03-15 at 18:08 +0800, Ulf Hansson wrote:
...
>>> Some prerequisites; I think am in favor of using the clk API to
>>> trigger DVFS changes and then I agree on that clk_prepare|unprepare
>>> needs to be possible to track from a DVFS perspective. clk_set_rate is
>>> not enough.
>>>
>>> So if we decide to do the above (using the clk API to trigger DVFS
>>> changes), I believe we should discuss two possible solutions;
>>> - clk notifiers or..
>>> - dvfs clock type.
>>>
>>> I am trying to make up my mind of what I think is the best solution.
>>> Have you considered "dvfs clock type"?
>>> I put some comments about this for "[PATCH 2/5] clk: notifier handler
>>> for dynamic voltage scaling" recently as well.
>>>
>>> What could the advantages/disadvantages be between the two options?
>>
>> I personally prefer clk notifiers since that's easy and all the existing
>> device drivers don't need to be modified, a new clock or API might be
>> more thoroughly considered (and hence maybe more graceful) but that
>> means we need more time to cook and many drivers need to plug into that
>> API when it comes out, a lot of test/verification or maybe chaos
>> follows, I'm not sure will that be a little overkill.
> 
> I guess you did not fully got what I meant with "dvfs clock type". It
> will not affect the clock API. But instead the dvfs is handled by
> implementing a specific clk hw type. So the same thing is accomplished
> as with clk notifiers, no changes should be needed to device drivers.
> 
> The difference is only that no notifiers will be needed, and all the
> dvfs stuff will be handled in the clk hw instead. It will mean that we
> will bundle dvfs stuff into the clock drivers, instead of separating
> the code outside the clock drivers. But, on the other hand no
> notifiers will be needed.

The advantage here is that I assume that a notifier would continually
have to check whether the clock being modified was one that the DVFS
notifier cared about. By integrating the CVFS logic into the clk_hw
itself, it'll only ever get executed for clocks that really care about
DVFS. Presumably, the code that implements the clk_hw could also use
some common DVFS library as part of the implementation, and still share
code. Or perhaps, what about putting DVFS "ops" into a clk_hw alongside
any other existing ops, and having the clock core call them whenever
appropriate?

  reply	other threads:[~2013-03-15 19:38 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-12 12:37 Bill Huang
2013-03-12 13:40 ` Russell King - ARM Linux
2013-03-13  1:47   ` Bill Huang
2013-03-13  4:42     ` Stephen Warren
2013-03-13  5:08       ` Bill Huang
2013-03-13  5:24         ` Stephen Warren
2013-03-13  5:40           ` Bill Huang
2013-03-13 18:10             ` Stephen Warren
2013-03-14  2:15               ` Bill Huang
2013-03-14  9:21                 ` Peter De Schrijver
2013-03-14  9:28                   ` Bill Huang
2013-03-14 17:54                     ` Stephen Warren
2013-03-15  1:20                       ` Bill Huang
2013-03-15  5:22                         ` Stephen Warren
2013-03-15  5:48                           ` Bill Huang
2013-03-15  9:39                           ` Peter De Schrijver
2013-03-15 10:08                             ` Ulf Hansson
2013-03-15 12:06                               ` Bill Huang
2013-03-15 12:33                                 ` Ulf Hansson
2013-03-15 19:38                                   ` Stephen Warren [this message]
2013-03-16  1:54                                     ` Bill Huang
2013-03-18 10:36                                     ` Ulf Hansson
2013-03-21 22:28                                       ` Mike Turquette
2013-03-16  2:23                                   ` Bill Huang
2013-03-15 17:12                           ` Russell King - ARM Linux
2013-03-15 17:09             ` Russell King - ARM Linux
2013-03-16  2:25               ` Bill Huang
2013-03-15 16:59       ` Russell King - ARM Linux
2013-03-15 16:57     ` Russell King - ARM Linux
2013-03-15 18:44       ` Nicolas Pitre

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=514378CB.1060605@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=bilhuang@nvidia.com \
    --cc=linaro-dev@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=patches@linaro.org \
    --cc=pdeschrijver@nvidia.com \
    --cc=ulf.hansson@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®