From: Kevin Hilman <khilman@deeprootsystems.com>
To: "Gopinath, Thara" <thara@ti.com>, Paul Walmsley <paul@pwsan.com>
Cc: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
"Sripathy, Vishwanath" <vishwanath.bs@ti.com>,
"Sawant, Anand" <sawant@ti.com>,
"Cousson, Benoit" <b-cousson@ti.com>
Subject: Re: [PATCH 05/13] OMAP: Introduce device specific set rate and get rate in device opp structures.
Date: Thu, 16 Sep 2010 08:28:24 -0700 [thread overview]
Message-ID: <87aanhd7xj.fsf@deeprootsystems.com> (raw)
In-Reply-To: <5A47E75E594F054BAF48C5E4FC4B92AB03294424DF@dbde02.ent.ti.com> (Thara Gopinath's message of "Thu, 16 Sep 2010 15:51:32 +0530")
"Gopinath, Thara" <thara@ti.com> writes:
>>>-----Original Message-----
>>>From: Kevin Hilman [mailto:khilman@deeprootsystems.com]
>>>Sent: Friday, September 03, 2010 5:12 AM
>>>To: Gopinath, Thara
>>>Cc: linux-omap@vger.kernel.org; paul@pwsan.com; Sripathy, Vishwanath; Sawant, Anand; Cousson, Benoit
>>>Subject: Re: [PATCH 05/13] OMAP: Introduce device specific set rate and get rate in device opp
>>>structures.
>>>
>>>Thara Gopinath <thara@ti.com> writes:
>>>
>>>> This patch extends the device opp structure to contain
>>>> pointers to scale the operating rate of the
>>>> device and to retrieve the operating rate of the device.
>>>> This patch also adds the three new APIs in the opp layer
>>>> namely opp_set_rate that can be called to set a new operating
>>>> rate for a device, opp_get_rate that can be called to retrieve
>>>> the operating frequency for a device and opp_populate_rate_fns
>>>> to populte the device specific set_rate and get_rate API's.
>>>> The opp_set_rate and opp_get_rate does some routine error
>>>> checks and finally calls into the device specific set_rate
>>>> and get_rate APIs populated through opp_populate_rate_fns.
>>>>
>>>> Signed-off-by: Thara Gopinath <thara@ti.com>
>>>
>>>As I think about this more, I'm not sure the OPP layer is the right
>>>layer for the get/set rate functions. The OPP layer is currently just
>>>the data store for OPP data. To me, these set/get functions are better
>>>associated directly with an omap_device instead of an OPP.
>>>
>>>For instance, the new OPP APIs are a bit confusing in terms of OPPs.
>>>e.g: opp_get_rate(). What is the "rate" of an OPP, and what's the
>>>difference with opp_get_freq()?
>>>
>>>What's really happening is the rate is being changed for a device, and
>>>the need for specific hooks are at the device level, not the OPP level.
>>>For example, this current approach would not scale if you needed
>>>multiple devices in the same domain that each needed custom
>>>set_rate/get_rate hooks.
>>>
>>>So instead, what about adding custom hooks at the omap_device level?
>>>They could be registered at omap_device_build() time in the device
>>>specific code.
>
> This is exactly what I had in my mind when I started implementing this.
> But then Paul said hwmod or omap_device is not the place to keep it.
IIRC, Paul's concern was that *hwmod* was not the right place for this
(and I agree.) However, I think omap_device is the right place for
this.
Paul?
> Also I do not want the set rate get rate APIs for devices that require
> changes dividers in the PRCM clock module to be spread out in the
> system. Makes it very very difficult to debug. If we agree to add the
> set_rate and get_rate in the omap_device structure, I would like to
> have one more API in the omap_device layer to register these APIs
> device wise. Thus we can keep these set rate and get rate APIs in one
> single file.
Agreed. And those functions should be in the respective
device-specific file, where the omap_device_build() etc are done for
that device.
> Also if we move these hooks to omap_device struct we will need to
> rename the current omap_device_set_rate (the main API) to
> omap_device_scale and introduce a new omap_device_set_rate which just
> finds out the omap device from the passed dev pointer and does a
> od->set_rate. Similarly for get rate also.
Yes, that's what I was thinking.
Kevin
next prev parent reply other threads:[~2010-09-16 15:28 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-18 11:19 [PATCH 00/13] OMAP: Basic DVFS framework Thara Gopinath
2010-08-18 11:20 ` [PATCH 01/13] OMAP: Introduce a user list for each voltage domain instance in the voltage driver Thara Gopinath
2010-08-27 23:53 ` Kevin Hilman
2010-08-30 22:56 ` Kevin Hilman
2010-09-16 9:59 ` Gopinath, Thara
2010-09-16 15:20 ` Kevin Hilman
2010-09-17 14:33 ` Gopinath, Thara
2010-09-01 22:51 ` Kevin Hilman
2010-09-02 7:43 ` Thomas Petazzoni
2010-09-02 8:17 ` Nishanth Menon
2010-09-02 10:00 ` Felipe Balbi
2010-09-02 10:17 ` Nishanth Menon
2010-09-02 10:28 ` Felipe Balbi
2010-09-02 10:40 ` Nishanth Menon
2010-09-02 11:16 ` Felipe Balbi
2010-09-02 17:47 ` Kevin Hilman
2010-09-02 18:46 ` Nishanth Menon
2010-09-02 18:56 ` Kevin Hilman
2010-09-03 7:09 ` Gopinath, Thara
2010-09-03 16:41 ` Kevin Hilman
2010-09-03 17:30 ` Mark Brown
2010-09-03 18:00 ` Kevin Hilman
2010-09-03 18:20 ` Mark Brown
2010-09-06 19:59 ` Eduardo Valentin
2010-09-06 20:21 ` Liam Girdwood
2010-09-06 21:21 ` Mark Brown
2010-11-23 9:26 ` Thomas Petazzoni
2010-11-24 9:45 ` Thomas Petazzoni
2010-11-24 9:51 ` Mark Brown
2010-09-03 18:27 ` Kevin Hilman
2010-09-06 11:01 ` Mark Brown
2010-08-18 11:20 ` [PATCH 02/13] OMAP: Introduce API in the OPP layer to find the opp entry corresponding to a voltage Thara Gopinath
2010-08-18 11:20 ` [PATCH 03/13] OMAP: Introduce voltage domain information in the hwmod structures Thara Gopinath
2010-08-18 11:20 ` [PATCH 04/13] OMAP: Introduce API to return a device list associated with a voltage domain Thara Gopinath
2010-08-28 0:52 ` Kevin Hilman
2010-08-28 0:54 ` Kevin Hilman
2010-09-16 10:04 ` Gopinath, Thara
2010-09-16 15:22 ` Kevin Hilman
2010-09-17 14:48 ` Gopinath, Thara
2010-09-20 18:00 ` Kevin Hilman
2010-09-02 0:33 ` Kevin Hilman
2010-09-16 10:10 ` Gopinath, Thara
2010-09-16 15:23 ` Kevin Hilman
2010-08-18 11:20 ` [PATCH 05/13] OMAP: Introduce device specific set rate and get rate in device opp structures Thara Gopinath
2010-09-02 23:41 ` Kevin Hilman
2010-09-16 10:21 ` Gopinath, Thara
2010-09-16 15:28 ` Kevin Hilman [this message]
2010-09-17 14:55 ` Gopinath, Thara
2010-09-18 10:13 ` Cousson, Benoit
2010-09-20 17:35 ` Kevin Hilman
2010-09-29 11:16 ` Gopinath, Thara
2010-09-29 20:25 ` Cousson, Benoit
2010-08-18 11:20 ` [PATCH 06/13] OMAP: Voltage layer changes to support DVFS Thara Gopinath
2010-08-18 11:20 ` [PATCH 07/13] OMAP: Introduce dependent voltage domain support Thara Gopinath
2010-08-18 11:20 ` [PATCH 08/13] OMAP: Introduce device set_rate and get_rate Thara Gopinath
2010-08-18 11:20 ` [PATCH 09/13] OMAP: Disable smartreflex across DVFS Thara Gopinath
2010-08-18 11:20 ` [PATCH 10/13] OMAP3: Introduce custom set rate and get rate APIs for scalable devices Thara Gopinath
2010-08-31 0:06 ` Kevin Hilman
2010-08-18 11:20 ` [PATCH 11/13] OMAP3: Update cpufreq driver to use the new set_rate API Thara Gopinath
2010-08-18 11:20 ` [PATCH 12/13] OMAP3: Introduce voltage domain info in the hwmod structures Thara Gopinath
2010-08-18 11:20 ` [PATCH 13/13] OMAP3: Add voltage dependency table for VDD1 Thara Gopinath
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=87aanhd7xj.fsf@deeprootsystems.com \
--to=khilman@deeprootsystems.com \
--cc=b-cousson@ti.com \
--cc=linux-omap@vger.kernel.org \
--cc=paul@pwsan.com \
--cc=sawant@ti.com \
--cc=thara@ti.com \
--cc=vishwanath.bs@ti.com \
/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.