From: Kevin Hilman <khilman@deeprootsystems.com>
To: Thara Gopinath <thara@ti.com>
Cc: linux-omap@vger.kernel.org, paul@pwsan.com, vishwanath.bs@ti.com,
sawant@ti.com, b-cousson@ti.com
Subject: Re: [PATCH 04/13] OMAP: Introduce API to return a device list associated with a voltage domain
Date: Wed, 01 Sep 2010 17:33:30 -0700 [thread overview]
Message-ID: <87d3sxdlwl.fsf@deeprootsystems.com> (raw)
In-Reply-To: <1282130412-12027-5-git-send-email-thara@ti.com> (Thara Gopinath's message of "Wed, 18 Aug 2010 16:50:03 +0530")
Thara Gopinath <thara@ti.com> writes:
> This patch adds an API in the opp layer that
> can be used by the voltage layer to get a list of all the
> scalable devices belonging to a particular voltage domain.
> This API is to be typically called only once by the voltage
> layer per voltage domain instance and the device list should
> be stored. This approach makes it easy during dvfs to scale
> all the devices associated with a voltage domain and then
> scale the voltage domain.
>
> Signed-off-by: Thara Gopinath <thara@ti.com>
I don't think the OPP layer is the right place for this after all.
How about something like this in the voltage layer:
omap_voltage_add_device(struct voltagedomain *voltdm, struct device *dev)
During omap_device_build(), if the hwmod has a voltage domain, it
calls this function to register it with the voltage layer.
This function then creates a list (internal to voltage layer) of all the
devices in a voltage domain rather than having to query the OPP layer
for it.
Kevin
> ---
> arch/arm/plat-omap/include/plat/opp.h | 9 +++++++++
> arch/arm/plat-omap/opp.c | 28 ++++++++++++++++++++++++++++
> 2 files changed, 37 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/plat-omap/include/plat/opp.h b/arch/arm/plat-omap/include/plat/opp.h
> index 0e580ed..a4c1669 100644
> --- a/arch/arm/plat-omap/include/plat/opp.h
> +++ b/arch/arm/plat-omap/include/plat/opp.h
> @@ -18,6 +18,7 @@
> #include <linux/cpufreq.h>
>
> #include <plat/common.h>
> +#include <plat/voltage.h>
>
> /**
> * struct omap_opp_def - OMAP OPP Definition
> @@ -86,6 +87,9 @@ int opp_disable(struct omap_opp *opp);
>
> void opp_init_cpufreq_table(struct device *dev,
> struct cpufreq_frequency_table **table);
> +
> +struct device **opp_init_voltage_params(struct voltagedomain *voltdm,
> + int *dev_count);
> #else
> static inline unsigned long opp_get_voltage(const struct omap_opp *opp)
> {
> @@ -149,5 +153,10 @@ void opp_init_cpufreq_table(struct omap_opp *opps,
> {
> }
>
> +static inline struct device **opp_init_voltage_params(
> + struct voltagedomain *voltdm, int *dev_count)
> +{
> +}
> +
> #endif /* CONFIG_PM */
> #endif /* __ASM_ARM_OMAP_OPP_H */
> diff --git a/arch/arm/plat-omap/opp.c b/arch/arm/plat-omap/opp.c
> index a3dea82..72dd62a 100644
> --- a/arch/arm/plat-omap/opp.c
> +++ b/arch/arm/plat-omap/opp.c
> @@ -502,3 +502,31 @@ void opp_init_cpufreq_table(struct device *dev,
>
> *table = &freq_table[0];
> }
> +
> +struct device **opp_init_voltage_params(struct voltagedomain *voltdm,
> + int *dev_count)
> +{
> + struct device_opp *dev_opp;
> + struct device **dev_list;
> + int count = 0, i = 0;
> +
> + list_for_each_entry(dev_opp, &dev_opp_list, node) {
> + if (!dev_opp->oh->vdd_name)
> + continue;
> +
> + if (!strcmp(dev_opp->oh->vdd_name, voltdm->name)) {
> + dev_opp->oh->voltdm = voltdm;
> + count++;
> + }
> + }
> +
> + dev_list = kzalloc(sizeof(struct device *) * count, GFP_KERNEL);
> +
> + list_for_each_entry(dev_opp, &dev_opp_list, node) {
> + if (dev_opp->oh->voltdm == voltdm)
> + dev_list[i++] = dev_opp->dev;
> + }
> +
> + *dev_count = count;
> + return dev_list;
> +}
next prev parent reply other threads:[~2010-09-02 0:33 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 [this message]
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
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=87d3sxdlwl.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.