All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nishanth Menon <nm@ti.com>
To: Rob Herring <robherring2@gmail.com>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Nishanth Menon <nm@ti.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Rob Herring <rob.herring@linaro.org>,
	Abhilash Kesavan <kesavan.abhilash@gmail.com>,
	"linaro-kernel@lists.linaro.org" <linaro-kernel@lists.linaro.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Viswanath Puttagunta <viswanath.puttagunta@linaro.org>,
	Stephen Boyd <sboyd@codeaurora.org>,
	Mark Brown <broonie@kernel.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	Rafael Wysocki <rjw@rjwysocki.net>,
	Grant Likely <grant.likely@linaro.org>,
	Kevin Hilman <khilman@linaro.org>,
	Michael Turquette <mike.turquette@linaro.org>,
	Sudeep Holla <Sudeep.Holla@arm.com>,
	Olof Johansson <olof@lixom.net>,
	Lucas Stach <l.stach@pengutronix.de>,
	Santosh Shilimkar <santosh.shilimkar@oracle.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH V4 1/3] OPP: Redefine bindings to overcome shortcomings
Date: Fri, 22 May 2015 12:42:35 -0500	[thread overview]
Message-ID: <555F6A8B.9010407@ti.com> (raw)
In-Reply-To: <CAL_JsqK-P=mMsgH27==Mjs2_Ji=uLcYDrecnT7rsDVYk62zmpA@mail.gmail.com>

On 05/22/2015 11:04 AM, Rob Herring wrote:
> On Fri, May 22, 2015 at 9:04 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote:
>> On 21-05-15, 01:02, Nishanth Menon wrote:
>>> This argues that clock is an input to the cpu, this is not in-correct,
>>> but, it could also be argued that OPP tables are clock dependent.
> 
> What piece of h/w is the clock an input to then?

The case(from one of the SoCs I deal with) I had in my mind was
something as follows:
GPU can get it's clock from a tree derived out of DPLL X OR a clock
derived out of DPLL Y.

Frequencies a,b,c can only be supported on DPLL X, where as frequencies
d,e,f on DPLL Y based tree.

There are many ways to skin the cat in this case.. if the clk mux is
glitchless, then a-f can be supported, else, we have to have two opp
tables which are selected by driver based on clock parent.

With the case where we cannot switch between the DPLLs, the question was
interesting if we decided to hook up the clock into the opp table based
on the fact that the frequencies are based of the clock.

The final clock feeding in to GPU, is the mux clock - every thing else
gets hidden by CCF, unless the driver is aware of the clock topology
(which we dont like to see in driver, since the driver is supposed to
work across multiple SoCs) - Now, the OPP tables would obviously be
based on which DPLL the source is from.

Our interest was not to have SoC specificity inside the driver and help
try and describe everything within DT itself - including the choice of
DPLL X based or DPLL Y based selection being made based on board (each
board tends to be targetted for some unique performance needs based on
usecase the board is being planned to be used for).

Ofcourse, with some platform specific code, this might be very easy to
do as well.. so not really very hard reasoning for me to have clock in
OPP table description itself.

> 
>>> For example, with multiple clock source options that a device might
>>> choose to select from internally(by some means.. lets not just restrict
>>> ourselves to just CPUs here for a moment), the tables might be
>>> different. We can always debate that this then is the responsibility of
>>> the driver handling the description for that device and we might want
>>> possibility of vice versa as well - same OPP table used by different
>>> clock source selections as well.
>>
>> @Rob: Any inputs ?
> 
> If you are going to describe this clock mux in DT, then that mux
> should be part of the h/w block that controls it. You could always add
> entries that describe what parent clock must be used for a given OPP,
> but that is a new binding and not part of the existing clock binding.
> 
> If things get too complicated, then don't try to describe this in DT.
> That is always an option.

Yes, ofcourse... it is always an option, we just tend to like to have
all data in the same place if possible - DT is the preferred approach.

-- 
Regards,
Nishanth Menon

WARNING: multiple messages have this Message-ID (diff)
From: nm@ti.com (Nishanth Menon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V4 1/3] OPP: Redefine bindings to overcome shortcomings
Date: Fri, 22 May 2015 12:42:35 -0500	[thread overview]
Message-ID: <555F6A8B.9010407@ti.com> (raw)
In-Reply-To: <CAL_JsqK-P=mMsgH27==Mjs2_Ji=uLcYDrecnT7rsDVYk62zmpA@mail.gmail.com>

On 05/22/2015 11:04 AM, Rob Herring wrote:
> On Fri, May 22, 2015 at 9:04 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote:
>> On 21-05-15, 01:02, Nishanth Menon wrote:
>>> This argues that clock is an input to the cpu, this is not in-correct,
>>> but, it could also be argued that OPP tables are clock dependent.
> 
> What piece of h/w is the clock an input to then?

The case(from one of the SoCs I deal with) I had in my mind was
something as follows:
GPU can get it's clock from a tree derived out of DPLL X OR a clock
derived out of DPLL Y.

Frequencies a,b,c can only be supported on DPLL X, where as frequencies
d,e,f on DPLL Y based tree.

There are many ways to skin the cat in this case.. if the clk mux is
glitchless, then a-f can be supported, else, we have to have two opp
tables which are selected by driver based on clock parent.

With the case where we cannot switch between the DPLLs, the question was
interesting if we decided to hook up the clock into the opp table based
on the fact that the frequencies are based of the clock.

The final clock feeding in to GPU, is the mux clock - every thing else
gets hidden by CCF, unless the driver is aware of the clock topology
(which we dont like to see in driver, since the driver is supposed to
work across multiple SoCs) - Now, the OPP tables would obviously be
based on which DPLL the source is from.

Our interest was not to have SoC specificity inside the driver and help
try and describe everything within DT itself - including the choice of
DPLL X based or DPLL Y based selection being made based on board (each
board tends to be targetted for some unique performance needs based on
usecase the board is being planned to be used for).

Ofcourse, with some platform specific code, this might be very easy to
do as well.. so not really very hard reasoning for me to have clock in
OPP table description itself.

> 
>>> For example, with multiple clock source options that a device might
>>> choose to select from internally(by some means.. lets not just restrict
>>> ourselves to just CPUs here for a moment), the tables might be
>>> different. We can always debate that this then is the responsibility of
>>> the driver handling the description for that device and we might want
>>> possibility of vice versa as well - same OPP table used by different
>>> clock source selections as well.
>>
>> @Rob: Any inputs ?
> 
> If you are going to describe this clock mux in DT, then that mux
> should be part of the h/w block that controls it. You could always add
> entries that describe what parent clock must be used for a given OPP,
> but that is a new binding and not part of the existing clock binding.
> 
> If things get too complicated, then don't try to describe this in DT.
> That is always an option.

Yes, ofcourse... it is always an option, we just tend to like to have
all data in the same place if possible - DT is the preferred approach.

-- 
Regards,
Nishanth Menon

  reply	other threads:[~2015-05-22 17:43 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-30 12:07 [PATCH V4 0/3] OPP: Introduce OPP (V2) bindings Viresh Kumar
2015-04-30 12:07 ` Viresh Kumar
     [not found] ` <cover.1430394884.git.viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-04-30 12:07   ` [PATCH V4 1/3] OPP: Redefine bindings to overcome shortcomings Viresh Kumar
2015-04-30 12:07     ` Viresh Kumar
     [not found]     ` <d225e73f183e01fa0b71e4b9248b6a19a3f7d697.1430394884.git.viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-04 12:12       ` Mark Brown
2015-05-04 12:12         ` Mark Brown
2015-05-05 10:48         ` Viresh Kumar
2015-05-05 10:48           ` Viresh Kumar
2015-05-05 10:57           ` Mark Brown
2015-05-05 10:57             ` Mark Brown
     [not found]             ` <20150505105714.GA22845-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-05-05 11:43               ` Viresh Kumar
2015-05-05 11:43                 ` Viresh Kumar
2015-05-05 17:12                 ` Mark Brown
2015-05-05 17:12                   ` Mark Brown
2015-05-06  6:53                   ` Viresh Kumar
2015-05-06  6:53                     ` Viresh Kumar
2015-05-07  5:52                     ` Stephen Boyd
2015-05-07  5:52                       ` Stephen Boyd
2015-05-07 11:02                       ` Mark Brown
2015-05-07 11:02                         ` Mark Brown
2015-05-07 21:18                         ` Stephen Boyd
2015-05-07 21:18                           ` Stephen Boyd
2015-05-07 22:18                           ` Mark Brown
2015-05-07 22:18                             ` Mark Brown
     [not found]                             ` <20150507221842.GW22845-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-05-08  6:47                               ` Viresh Kumar
2015-05-08  6:47                                 ` Viresh Kumar
2015-05-08 10:58                                 ` Mark Brown
2015-05-08 10:58                                   ` Mark Brown
2015-05-08 11:01                                   ` Viresh Kumar
2015-05-08 11:01                                     ` Viresh Kumar
2015-05-11  1:07                                 ` Nishanth Menon
2015-05-11  1:07                                   ` Nishanth Menon
2015-05-12  5:20                                   ` Viresh Kumar
2015-05-12  5:20                                     ` Viresh Kumar
2015-05-12 19:01                                     ` Michael Turquette
2015-05-12 19:01                                       ` Michael Turquette
2015-05-12 19:14                                       ` Nishanth Menon
2015-05-12 19:14                                         ` Nishanth Menon
2015-05-12 19:41                                         ` Mark Brown
2015-05-12 19:41                                           ` Mark Brown
2015-05-12 19:57                                           ` Nishanth Menon
2015-05-12 19:57                                             ` Nishanth Menon
2015-05-13 11:54                                             ` Mark Brown
2015-05-13 11:54                                               ` Mark Brown
     [not found]                                               ` <20150513115422.GQ3066-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-05-13 14:24                                                 ` Nishanth Menon
2015-05-13 14:24                                                   ` Nishanth Menon
2015-05-13 15:07                                                   ` Mark Brown
2015-05-13 15:07                                                     ` Mark Brown
2015-05-13 15:43                                                     ` Nishanth Menon
2015-05-13 15:43                                                       ` Nishanth Menon
2015-05-07 12:13                       ` Viresh Kumar
2015-05-07 12:13                         ` Viresh Kumar
2015-05-07 21:30                         ` Stephen Boyd
2015-05-07 21:30                           ` Stephen Boyd
2015-05-08  6:49                           ` Viresh Kumar
2015-05-08  6:49                             ` Viresh Kumar
2015-05-11  1:02       ` Nishanth Menon
2015-05-11  1:02         ` Nishanth Menon
2015-05-12  5:16         ` Viresh Kumar
2015-05-12  5:16           ` Viresh Kumar
2015-05-12 16:04           ` Nishanth Menon
2015-05-12 16:04             ` Nishanth Menon
2015-05-13  5:05             ` Viresh Kumar
2015-05-13  5:05               ` Viresh Kumar
2015-05-13 15:00               ` Nishanth Menon
2015-05-13 15:00                 ` Nishanth Menon
2015-05-13 15:16                 ` Mark Brown
2015-05-13 15:16                   ` Mark Brown
2015-05-13 16:14                   ` Nishanth Menon
2015-05-13 16:14                     ` Nishanth Menon
2015-05-13 16:21                     ` Mark Brown
2015-05-13 16:21                       ` Mark Brown
2015-05-13 16:34                       ` Nishanth Menon
2015-05-13 16:34                         ` Nishanth Menon
2015-05-12 16:19     ` Felipe Balbi
2015-05-12 16:19       ` Felipe Balbi
2015-05-13  4:45       ` Viresh Kumar
2015-05-13  4:45         ` Viresh Kumar
2015-05-12 21:42     ` Michael Turquette
2015-05-12 21:42       ` Michael Turquette
2015-05-13  8:55       ` Viresh Kumar
2015-05-13  8:55         ` Viresh Kumar
2015-05-13 11:03         ` Mark Brown
2015-05-13 11:03           ` Mark Brown
2015-05-14  0:32           ` Michael Turquette
2015-05-14  0:32             ` Michael Turquette
     [not found]             ` <CAKohpokeKtcJdrBcPZBBPR2zfJgpvuM_=wRaX5q1Uto2qx1oHQ@mail.gmail.com>
2015-05-15 14:15               ` Viresh Kumar
2015-05-15 14:15                 ` Viresh Kumar
2015-05-15 15:43                 ` Nishanth Menon
2015-05-15 15:43                   ` Nishanth Menon
2015-05-15 17:27             ` Rob Herring
2015-05-15 17:27               ` Rob Herring
2015-05-21  6:02         ` Nishanth Menon
2015-05-21  6:02           ` Nishanth Menon
2015-05-22 14:04           ` Viresh Kumar
2015-05-22 14:04             ` Viresh Kumar
2015-05-22 16:04             ` Rob Herring
2015-05-22 16:04               ` Rob Herring
2015-05-22 17:42               ` Nishanth Menon [this message]
2015-05-22 17:42                 ` Nishanth Menon
2015-05-26  5:25                 ` Viresh Kumar
2015-05-26  5:25                   ` Viresh Kumar
2015-05-20  0:51     ` Stephen Boyd
2015-05-20  0:51       ` Stephen Boyd
2015-05-20  2:07       ` Viresh Kumar
2015-05-20  2:07         ` Viresh Kumar
2015-05-20 19:39         ` Stephen Boyd
2015-05-20 19:39           ` Stephen Boyd
2015-05-21  4:33           ` Viresh Kumar
2015-05-21  4:33             ` Viresh Kumar
2015-05-25 11:59             ` Viresh Kumar
2015-05-25 11:59               ` Viresh Kumar
2015-04-30 12:08 ` [PATCH V4 2/3] OPP: Allow multiple OPP tables to be passed via DT Viresh Kumar
2015-04-30 12:08   ` Viresh Kumar
2015-05-12 16:09   ` Nishanth Menon
2015-05-12 16:09     ` Nishanth Menon
2015-05-13  4:41     ` Viresh Kumar
2015-05-13  4:41       ` Viresh Kumar
2015-05-20  0:52   ` Stephen Boyd
2015-05-20  0:52     ` Stephen Boyd
2015-04-30 12:08 ` [PATCH V4 3/3] OPP: Add 'opp-next' in operating-points-v2 bindings Viresh Kumar
2015-04-30 12:08   ` Viresh Kumar
2015-05-12 21:47   ` Michael Turquette
2015-05-12 21:47     ` Michael Turquette

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=555F6A8B.9010407@ti.com \
    --to=nm@ti.com \
    --cc=Sudeep.Holla@arm.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=grant.likely@linaro.org \
    --cc=kesavan.abhilash@gmail.com \
    --cc=khilman@linaro.org \
    --cc=l.stach@pengutronix.de \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mike.turquette@linaro.org \
    --cc=olof@lixom.net \
    --cc=rjw@rjwysocki.net \
    --cc=rob.herring@linaro.org \
    --cc=robherring2@gmail.com \
    --cc=santosh.shilimkar@oracle.com \
    --cc=sboyd@codeaurora.org \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=viresh.kumar@linaro.org \
    --cc=viswanath.puttagunta@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.