* [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).