All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Walmsley <paul@pwsan.com>
To: nm@ti.com
Cc: linux-omap@vger.kernel.org
Subject: [PATCH 10/12] OMAP OPP: remove "initial terminators" from OPP lists
Date: Thu, 17 Dec 2009 17:47:40 -0700	[thread overview]
Message-ID: <20091218004739.7694.25893.stgit@localhost.localdomain> (raw)
In-Reply-To: <20091218004617.7694.84525.stgit@localhost.localdomain>

Now that the SRF and Smartreflex code uses accessor functions to interact
with OPPs, the "initial terminators" can be removed.
---
 arch/arm/plat-omap/opp.c |   36 ++++++++----------------------------
 1 files changed, 8 insertions(+), 28 deletions(-)

diff --git a/arch/arm/plat-omap/opp.c b/arch/arm/plat-omap/opp.c
index 596e3ee..f651912 100644
--- a/arch/arm/plat-omap/opp.c
+++ b/arch/arm/plat-omap/opp.c
@@ -53,15 +53,15 @@ unsigned long opp_get_freq(const struct omap_opp *opp)
 struct omap_opp * __deprecated opp_find_by_opp_id(struct omap_opp *opps,
 						  u8 opp_id)
 {
-	int i = 1;
+	int i = 0;
 
 	if (!opps || !opp_id)
 		return NULL;
 
-	/* The first entry is a dummy one, loop till we hit terminator */
 	while (!OPP_TERM(&opps[i])) {
 		if (opps[i].enabled && (opps[i].opp_id == opp_id))
 			return &opps[i];
+
 		i++;
 	}
 
@@ -76,7 +76,6 @@ int opp_get_opp_count(struct omap_opp *oppl)
 		pr_err("%s: Invalid parameters being passed\n", __func__);
 		return -EINVAL;
 	}
-	oppl++;			/* skip initial terminator */
 	while (!OPP_TERM(oppl)) {
 		if (oppl->enabled)
 			n++;
@@ -92,9 +91,7 @@ struct omap_opp *opp_find_freq_exact(struct omap_opp *oppl,
 		pr_err("%s: Invalid parameters being passed\n", __func__);
 		return ERR_PTR(-EINVAL);
 	}
-	/* skip initial terminator */
-	if (OPP_TERM(oppl))
-		oppl++;
+
 	while (!OPP_TERM(oppl)) {
 		if ((oppl->rate == freq) && (oppl->enabled == enabled))
 			break;
@@ -111,10 +108,6 @@ struct omap_opp *opp_find_freq_ceil(struct omap_opp *oppl, unsigned long *freq)
 		return ERR_PTR(-EINVAL);
 	}
 
-	/* skip initial terminator */
-	if (OPP_TERM(oppl))
-		oppl++;
-
 	while (!OPP_TERM(oppl)) {
 		if (oppl->enabled && oppl->rate >= *freq)
 			break;
@@ -139,10 +132,6 @@ struct omap_opp *opp_find_freq_floor(struct omap_opp *oppl, unsigned long *freq)
 		return ERR_PTR(-EINVAL);
 	}
 
-	/* skip initial terminator */
-	if (OPP_TERM(oppl))
-		oppl++;
-
 	while (!OPP_TERM(oppl)) {
 		if (oppl->enabled) {
 			if (oppl->rate > *freq)
@@ -181,20 +170,16 @@ struct omap_opp *opp_add(struct omap_opp *oppl,
 		pr_err("%s: Invalid params being passed\n", __func__);
 		return ERR_PTR(-EINVAL);
 	}
-	/* need a start terminator.. */
-	if (unlikely(!OPP_TERM(oppl))) {
-		pr_err("%s: Expected a start terminator!!\n", __func__);
-		return ERR_PTR(-EINVAL);
-	}
+
 	n = 0;
 	opp = oppl;
-	opp++;
 	while (!OPP_TERM(opp)) {
 		n++;
 		opp++;
 	}
+
 	/* lets now reallocate memory */
-	oppr = kmalloc(sizeof(struct omap_opp) * (n + 3), GFP_KERNEL);
+	oppr = kmalloc(sizeof(struct omap_opp) * (n + 2), GFP_KERNEL);
 	if (!oppr) {
 		pr_err("%s: No memory for new opp array\n", __func__);
 		return ERR_PTR(-ENOMEM);
@@ -204,7 +189,7 @@ struct omap_opp *opp_add(struct omap_opp *oppl,
 	opp = oppl;
 	oppt = oppr;
 	ins = 0;
-	i = 0;
+	i = 1;
 	do {
 		if (ins || opp->rate < opp_def->freq) {
 			memcpy(oppt, opp, sizeof(struct omap_opp));
@@ -249,17 +234,12 @@ struct omap_opp __init *opp_init_list(const struct omap_opp_def *opp_defs)
 		t++;
 	}
 
-	oppl = kmalloc(sizeof(struct omap_opp) * (n + 2), GFP_KERNEL);
+	oppl = kmalloc(sizeof(struct omap_opp) * (n + 1), GFP_KERNEL);
 	if (!oppl) {
 		pr_err("%s: No memory for opp array\n", __func__);
 		return ERR_PTR(-ENOMEM);
 	}
 	opp = oppl;
-	/* Setup start terminator - SRF depends on this for indexing :( */
-	opp->rate = 0;
-	opp->enabled = 0;
-	opp->u_volt = 0;
-	opp++;
 	while (n) {
 		omap_opp_populate(opp, opp_defs);
 		opp->opp_id = i;



  parent reply	other threads:[~2009-12-18  0:48 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20091218004617.7694.84525.stgit@localhost.localdomain>
2009-12-18  0:47 ` [PATCH 01/12] OMAP OPP: remove some unnecessary variables Paul Walmsley
2009-12-18 17:28   ` Kevin Hilman
2009-12-18  0:47 ` [PATCH 02/12] OMAP OPP: split opp_find_freq_approx() into opp_find_freq_{floor, ceil}() Paul Walmsley
2009-12-18  0:47 ` [PATCH 03/12] OMAP OPP: only traverse opp_find_freq_floor() once Paul Walmsley
2009-12-19 12:10   ` Menon, Nishanth
2009-12-18  0:47 ` [PATCH 04/12] OMAP TWL/TPS OPP: move TWL/TPS-specific code to its own file Paul Walmsley
2009-12-19 12:14   ` Menon, Nishanth
2009-12-18  0:47 ` [PATCH 05/12] OMAP TWL/TPS OPP: vsel rounding belongs in opp_twl_tps.c Paul Walmsley
2009-12-19 12:16   ` Menon, Nishanth
2009-12-18  0:47 ` [PATCH 07/12] OMAP OPP: add opp_find_opp_by_opp_id() Paul Walmsley
2009-12-18  0:47 ` [PATCH 06/12] OMAP OPP: add microvolts DC ("u_volt") field into struct omap_opp Paul Walmsley
2009-12-18  0:47 ` [PATCH 08/12] OMAP SR/SRF: use opp_find_opp_by_opp_id() Paul Walmsley
2009-12-18  0:47 ` [PATCH 09/12] OMAP OPP: remove vsel Paul Walmsley
2009-12-18  0:47 ` Paul Walmsley [this message]
2009-12-18 19:08   ` [PATCH 10/12] OMAP OPP: remove "initial terminators" from OPP lists Kevin Hilman
2009-12-18  0:47 ` [PATCH 11/12] OMAP OPP: use kzalloc() rather than kmalloc() Paul Walmsley
2009-12-18  0:47 ` [PATCH 12/12] OMAP3 OPP: move CPUFreq table init code to OPP layer Paul Walmsley
2009-12-19 12:22   ` Menon, Nishanth

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=20091218004739.7694.25893.stgit@localhost.localdomain \
    --to=paul@pwsan.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=nm@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.