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 03/12] OMAP OPP: only traverse opp_find_freq_floor() once
Date: Thu, 17 Dec 2009 17:47:34 -0700	[thread overview]
Message-ID: <20091218004733.7694.75878.stgit@localhost.localdomain> (raw)
In-Reply-To: <20091218004617.7694.84525.stgit@localhost.localdomain>

There's no point traversing the OPP list twice in opp_find_freq_floor().
---
 arch/arm/plat-omap/opp.c |   30 +++++++++++++-----------------
 1 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/arch/arm/plat-omap/opp.c b/arch/arm/plat-omap/opp.c
index fc250b8..e9f5706 100644
--- a/arch/arm/plat-omap/opp.c
+++ b/arch/arm/plat-omap/opp.c
@@ -126,36 +126,32 @@ struct omap_opp *opp_find_freq_ceil(struct omap_opp *oppl, unsigned long *freq)
 
 struct omap_opp *opp_find_freq_floor(struct omap_opp *oppl, unsigned long *freq)
 {
+	struct omap_opp *prev_opp = oppl;
+
 	if (unlikely(!oppl || IS_ERR(oppl) || !freq || IS_ERR(freq))) {
 		pr_err("%s: Invalid parameters being passed\n", __func__);
 		return ERR_PTR(-EINVAL);
 	}
 
 	/* skip initial terminator */
-	if (OPP_TERM(oppl)) {
+	if (OPP_TERM(oppl))
 		oppl++;
-		/* If searching init list for a high val, skip to very top */
-		/*
-		 * XXX What is the point of this?  If one is going to traverse
-		 * the list, might as well do what we need to do during the
-		 * traversal.
-		 */
-		while (!OPP_TERM(oppl)) /* XXX above */
-			oppl++;
-	}
 
-	while (!OPP_TERM(--oppl)) {
-		if (!oppl->enabled)
-			continue;
+	while (!OPP_TERM(oppl)) {
+		if (oppl->enabled) {
+			if (oppl->rate > *freq)
+				break;
 
-		if (oppl->rate <= *freq)
-			break;
+			prev_opp = oppl;
+		}
+
+		oppl++;
 	}
 
-	if (OPP_TERM(oppl))
+	if (prev_opp->rate > *freq)
 		return ERR_PTR(-ENOENT);
 
-	*freq = oppl->rate;
+	*freq = prev_opp->rate;
 
 	return oppl;
 }



  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 ` Paul Walmsley [this message]
2009-12-19 12:10   ` [PATCH 03/12] OMAP OPP: only traverse opp_find_freq_floor() once 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 ` [PATCH 10/12] OMAP OPP: remove "initial terminators" from OPP lists Paul Walmsley
2009-12-18 19:08   ` 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=20091218004733.7694.75878.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.