From: Romit Dasgupta <romit@ti.com>
To: paul@pwsan.com, nm@ti.com, khilman@deeprootsystems.com
Cc: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: [PATCH 3/10] OPP layer and additional cleanups.
Date: Thu, 31 Dec 2009 18:59:12 +0530 [thread overview]
Message-ID: <1262266152.20175.179.camel@boson> (raw)
Change in the resource arbitration APIs to use the OPP layer.
diff --git a/arch/arm/plat-omap/omap-pm-noop.c b/arch/arm/plat-omap/omap-pm-noop.c
index f7437f7..f59c4aa 100644
--- a/arch/arm/plat-omap/omap-pm-noop.c
+++ b/arch/arm/plat-omap/omap-pm-noop.c
@@ -26,10 +26,6 @@
#include <plat/powerdomain.h>
-struct omap_opp *dsp_opps;
-struct omap_opp *mpu_opps;
-struct omap_opp *l3_opps;
-
/*
* Device-driver-originated constraints (via board-*.c files)
*/
@@ -158,42 +154,21 @@ const struct omap_opp *omap_pm_dsp_get_opp_table(void)
return NULL;
}
-void omap_pm_dsp_set_min_opp(u8 opp_id)
+void omap_pm_dsp_set_min_freq(unsigned long freq)
{
- if (opp_id == 0) {
+ if (!freq) {
WARN_ON(1);
return;
}
- pr_debug("OMAP PM: DSP requests minimum VDD1 OPP to be %d\n", opp_id);
+ pr_debug("OMAP PM: DSP requests minimum DSP freq to be %lu\n", freq);
- /*
- *
- * For l-o dev tree, our VDD1 clk is keyed on OPP ID, so we
- * can just test to see which is higher, the CPU's desired OPP
- * ID or the DSP's desired OPP ID, and use whichever is
- * highest.
- *
- * In CDP12.14+, the VDD1 OPP custom clock that controls the DSP
- * rate is keyed on MPU speed, not the OPP ID. So we need to
- * map the OPP ID to the MPU speed for use with clk_set_rate()
- * if it is higher than the current OPP clock rate.
- *
- */
}
-u8 omap_pm_dsp_get_opp(void)
+unsigned long omap_pm_dsp_get_freq(void)
{
- pr_debug("OMAP PM: DSP requests current DSP OPP ID\n");
-
- /*
- * For l-o dev tree, call clk_get_rate() on VDD1 OPP clock
- *
- * CDP12.14+:
- * Call clk_get_rate() on the OPP custom clock, map that to an
- * OPP ID using the tables defined in board-*.c/chip-*.c files.
- */
+ pr_debug("OMAP PM: DSP requests current DSP freq\n");
return 0;
}
diff --git a/arch/arm/plat-omap/omap-pm-srf.c b/arch/arm/plat-omap/omap-pm-srf.c
index f7bf353..0736d6a 100644
--- a/arch/arm/plat-omap/omap-pm-srf.c
+++ b/arch/arm/plat-omap/omap-pm-srf.c
@@ -25,10 +25,6 @@
#include <plat/resource.h>
#include <plat/omap_device.h>
-struct omap_opp *dsp_opps;
-struct omap_opp *mpu_opps;
-struct omap_opp *l3_opps;
-
#define LAT_RES_POSTAMBLE "_latency"
#define MAX_LATENCY_RES_NAME 30
@@ -78,16 +74,17 @@ void omap_pm_set_min_bus_tput(struct device *dev, u8 agent_id, unsigned long r)
WARN_ON(1);
return;
};
+#warning "Convert throughput to L3 frequency before invoking resource_request"
if (r == 0) {
pr_debug("OMAP PM: remove min bus tput constraint: "
"dev %s for agent_id %d\n", dev_name(dev), agent_id);
- resource_release("vdd2_opp", dev);
+ resource_release("l3_freq", dev);
} else {
pr_debug("OMAP PM: add min bus tput constraint: "
"dev %s for agent_id %d: rate %ld KiB\n",
dev_name(dev), agent_id, r);
- resource_request("vdd2_opp", dev, r);
+ resource_request("l3_freq", dev, r);
}
}
@@ -168,42 +165,27 @@ void omap_pm_set_max_sdma_lat(struct device *dev, long t)
static struct device dummy_dsp_dev;
-/*
- * DSP Bridge-specific constraints
- */
-const struct omap_opp *omap_pm_dsp_get_opp_table(void)
-{
- pr_debug("OMAP PM: DSP request for OPP table\n");
-
- /*
- * Return DSP frequency table here: The final item in the
- * array should have .rate = .opp_id = 0.
- */
-
- return NULL;
-}
-
-void omap_pm_dsp_set_min_opp(u8 opp_id)
+void omap_pm_dsp_set_min_freq(unsigned long freq)
{
- if (opp_id == 0) {
+ if (!freq) {
WARN_ON(1);
return;
}
- pr_debug("OMAP PM: DSP requests minimum VDD1 OPP to be %d\n", opp_id);
+ pr_debug("OMAP PM: DSP requests minimum DSP freq to be %lu\n", freq);
/*
* For now pass a dummy_dev struct for SRF to identify the caller.
* Maybe its good to have DSP pass this as an argument
*/
- resource_request("vdd1_opp", &dummy_dsp_dev, opp_id);
+ resource_request("dsp_freq", &dummy_dsp_dev, freq);
return;
}
-u8 omap_pm_dsp_get_opp(void)
+unsigned long omap_pm_dsp_get_freq(void)
{
- pr_debug("OMAP PM: DSP requests current DSP OPP ID\n");
- return resource_get_level("vdd1_opp");
+ pr_debug("OMAP PM: DSP requests current DSP frequency\n");
+ return resource_get_level("dsp_freq");
return 0;
}
Change in the resource arbitration APIs to use the OPP layer.
next reply other threads:[~2009-12-31 13:29 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-31 13:29 Romit Dasgupta [this message]
[not found] ` <4B42663F.6040501@ti.com>
2010-01-07 12:50 ` [PATCH 3/10] OPP layer and additional cleanups Romit Dasgupta
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=1262266152.20175.179.camel@boson \
--to=romit@ti.com \
--cc=khilman@deeprootsystems.com \
--cc=linux-omap@vger.kernel.org \
--cc=nm@ti.com \
--cc=paul@pwsan.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.