linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 3/5] Thermal: Get cpu frequency via cpu cooling table
  2013-02-06  4:30 [PATCH 0/5] Thermal: cpu cooling fix Zhang Rui
@ 2013-02-06  4:30 ` Zhang Rui
  0 siblings, 0 replies; 2+ messages in thread
From: Zhang Rui @ 2013-02-06  4:30 UTC (permalink / raw)
  To: linux-pm; +Cc: amit.daniel, gu1, hongbo.zhang, Zhang Rui

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


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 3/5] Thermal: Get cpu frequency via cpu cooling table
       [not found] <CADGdYn4uusfk5gQ+tf8=VvaTLzTHkkfZJ9cLBojTwy8fT7vPoA@mail.gmail.com>
@ 2013-02-07  1:44 ` amit daniel kachhap
  0 siblings, 0 replies; 2+ messages in thread
From: amit daniel kachhap @ 2013-02-07  1:44 UTC (permalink / raw)
  To: Zhang Rui; +Cc: linux-pm, Gu1, Hongbo Zhang, amit kachhap

Few comments below,

On Wed, Feb 6, 2013 at 5:41 PM, amit kachhap <amit.kachhap@gmail.com> wrote:
> 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;
return freq instead of return 0.

>  }
>
>  /**
> --
> 1.7.9.5

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-02-07  1:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CADGdYn4uusfk5gQ+tf8=VvaTLzTHkkfZJ9cLBojTwy8fT7vPoA@mail.gmail.com>
2013-02-07  1:44 ` [PATCH 3/5] Thermal: Get cpu frequency via cpu cooling table amit daniel kachhap
2013-02-06  4:30 [PATCH 0/5] Thermal: cpu cooling fix Zhang Rui
2013-02-06  4:30 ` [PATCH 3/5] Thermal: Get cpu frequency via cpu cooling table Zhang Rui

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).