All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhang Rui <rui.zhang@intel.com>
To: linux-pm@vger.kernel.org
Cc: amit.daniel@samsung.com, gu1@aeroxteam.fr,
	hongbo.zhang@linaro.org, Zhang Rui <rui.zhang@intel.com>
Subject: [PATCH 3/5] Thermal: Get cpu frequency via cpu cooling table
Date: Wed,  6 Feb 2013 12:30:04 +0800	[thread overview]
Message-ID: <1360125006-25018-4-git-send-email-rui.zhang@intel.com> (raw)
In-Reply-To: <1360125006-25018-1-git-send-email-rui.zhang@intel.com>

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
---
 drivers/thermal/cpu_cooling.c |   45 ++++++++---------------------------------
 1 file changed, 8 insertions(+), 37 deletions(-)

diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
index 08f12c7..57bb669 100644
--- a/drivers/thermal/cpu_cooling.c
+++ b/drivers/thermal/cpu_cooling.c
@@ -186,46 +186,17 @@ get_cpu_cooling_table(unsigned int cpu)
  */
 static unsigned int get_cpu_frequency(unsigned int cpu, unsigned long level)
 {
-	int ret = 0, i = 0;
-	unsigned long level_index;
-	bool descend = false;
-	struct cpufreq_frequency_table *table =
-					cpufreq_frequency_get_table(cpu);
-	if (!table)
-		return ret;
-
-	while (table[i].frequency != CPUFREQ_TABLE_END) {
-		if (table[i].frequency == CPUFREQ_ENTRY_INVALID)
-			continue;
-
-		/*check if table in ascending or descending order*/
-		if ((table[i + 1].frequency != CPUFREQ_TABLE_END) &&
-			(table[i + 1].frequency < table[i].frequency)
-			&& !descend) {
-			descend = true;
-		}
+	struct cpufreq_frequency_table *table;
+	unsigned int freq;
 
-		/*return if level matched and table in descending order*/
-		if (descend && i == level)
-			return table[i].frequency;
-		i++;
-	}
-	i--;
+	table = get_cpu_cooling_table(cpu);
+	if (IS_ERR(table))
+		return -EINVAL;
 
-	if (level > i || descend)
-		return ret;
-	level_index = i - level;
+	freq = table[level].frequency;
 
-	/*Scan the table in reverse order and match the level*/
-	while (i >= 0) {
-		if (table[i].frequency == CPUFREQ_ENTRY_INVALID)
-			continue;
-		/*return if level matched*/
-		if (i == level_index)
-			return table[i].frequency;
-		i--;
-	}
-	return ret;
+	kfree(table);
+	return 0;
 }
 
 /**
-- 
1.7.9.5


  parent reply	other threads:[~2013-02-06  4:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-06  4:30 [PATCH 0/5] Thermal: cpu cooling fix Zhang Rui
2013-02-06  4:30 ` [PATCH 1/5] Thermal: fix a wrong comment Zhang Rui
2013-02-06  4:30 ` [PATCH 2/5] Thermal: Introduce cpu cooling table Zhang Rui
2013-02-07  9:36   ` Hongbo Zhang
2013-02-08  3:30     ` Zhang Rui
2013-02-08 13:09       ` Hongbo Zhang
2013-02-06  4:30 ` Zhang Rui [this message]
2013-02-06  4:30 ` [PATCH 4/5] Thermal: Get max cpu cooling states via " Zhang Rui
2013-02-06  4:30 ` [PATCH 5/5] Thermal: Get cooling state " Zhang Rui
     [not found] <CADGdYn4uusfk5gQ+tf8=VvaTLzTHkkfZJ9cLBojTwy8fT7vPoA@mail.gmail.com>
2013-02-07  1:44 ` [PATCH 3/5] Thermal: Get cpu frequency " amit daniel kachhap

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=1360125006-25018-4-git-send-email-rui.zhang@intel.com \
    --to=rui.zhang@intel.com \
    --cc=amit.daniel@samsung.com \
    --cc=gu1@aeroxteam.fr \
    --cc=hongbo.zhang@linaro.org \
    --cc=linux-pm@vger.kernel.org \
    /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.