Re: [PATCH v5 2/8] cpufreq: Use cpufreq_for_each_* macros for frequency table iteration

2014-04-26 Thread Stratos Karafotis
Hi Prabhakar,

On 26/04/2014 12:57 μμ, Prabhakar Lad wrote:
> Hi Stratos,
> 
> Thanks for the patch,
> 
> On Sat, Apr 26, 2014 at 1:45 AM, Stratos Karafotis
>  wrote:
>> The cpufreq core now supports the cpufreq_for_each_entry and
>> cpufreq_for_each_valid_entry macros helpers for iteration over the
>> cpufreq_frequency_table, so use them.
>>
>> It should have no functional changes.
>>
>> Signed-off-by: Stratos Karafotis 
> 
> For patches 1 & 2:  Acked-by: Lad, Prabhakar 
> 
> and for patch 3: Acked-and-tested-by: Lad, Prabhakar
> 
> 
> Thanks,
> --Prabhakar lad
> 

Thank you very much!


Stratos Karafotis


--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v5 2/8] cpufreq: Use cpufreq_for_each_* macros for frequency table iteration

2014-04-26 Thread Prabhakar Lad
Hi Stratos,

Thanks for the patch,

On Sat, Apr 26, 2014 at 1:45 AM, Stratos Karafotis
 wrote:
> The cpufreq core now supports the cpufreq_for_each_entry and
> cpufreq_for_each_valid_entry macros helpers for iteration over the
> cpufreq_frequency_table, so use them.
>
> It should have no functional changes.
>
> Signed-off-by: Stratos Karafotis 

For patches 1 & 2:  Acked-by: Lad, Prabhakar 

and for patch 3: Acked-and-tested-by: Lad, Prabhakar


Thanks,
--Prabhakar lad

> ---
>  drivers/cpufreq/acpi-cpufreq.c   |  9 +++---
>  drivers/cpufreq/arm_big_little.c | 16 +--
>  drivers/cpufreq/cpufreq_stats.c  | 24 ++--
>  drivers/cpufreq/dbx500-cpufreq.c |  8 ++
>  drivers/cpufreq/elanfreq.c   |  9 +++---
>  drivers/cpufreq/exynos-cpufreq.c | 11 ---
>  drivers/cpufreq/exynos5440-cpufreq.c | 30 +--
>  drivers/cpufreq/freq_table.c | 56 
> 
>  drivers/cpufreq/longhaul.c   | 11 ---
>  drivers/cpufreq/pasemi-cpufreq.c | 10 +++
>  drivers/cpufreq/powernow-k6.c| 14 -
>  drivers/cpufreq/ppc_cbe_cpufreq.c|  9 +++---
>  drivers/cpufreq/s3c2416-cpufreq.c| 40 +++---
>  drivers/cpufreq/s3c64xx-cpufreq.c| 15 --
>  14 files changed, 116 insertions(+), 146 deletions(-)
>
> diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
> index 000e4e0..b0c18ed 100644
> --- a/drivers/cpufreq/acpi-cpufreq.c
> +++ b/drivers/cpufreq/acpi-cpufreq.c
> @@ -213,7 +213,7 @@ static unsigned extract_io(u32 value, struct 
> acpi_cpufreq_data *data)
>
>  static unsigned extract_msr(u32 msr, struct acpi_cpufreq_data *data)
>  {
> -   int i;
> +   struct cpufreq_frequency_table *pos;
> struct acpi_processor_performance *perf;
>
> if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
> @@ -223,10 +223,9 @@ static unsigned extract_msr(u32 msr, struct 
> acpi_cpufreq_data *data)
>
> perf = data->acpi_data;
>
> -   for (i = 0; data->freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
> -   if (msr == 
> perf->states[data->freq_table[i].driver_data].status)
> -   return data->freq_table[i].frequency;
> -   }
> +   cpufreq_for_each_entry(pos, data->freq_table)
> +   if (msr == perf->states[pos->driver_data].status)
> +   return pos->frequency;
> return data->freq_table[0].frequency;
>  }
>
> diff --git a/drivers/cpufreq/arm_big_little.c 
> b/drivers/cpufreq/arm_big_little.c
> index bad2ed3..1f4d4e3 100644
> --- a/drivers/cpufreq/arm_big_little.c
> +++ b/drivers/cpufreq/arm_big_little.c
> @@ -226,22 +226,22 @@ static inline u32 get_table_count(struct 
> cpufreq_frequency_table *table)
>  /* get the minimum frequency in the cpufreq_frequency_table */
>  static inline u32 get_table_min(struct cpufreq_frequency_table *table)
>  {
> -   int i;
> +   struct cpufreq_frequency_table *pos;
> uint32_t min_freq = ~0;
> -   for (i = 0; (table[i].frequency != CPUFREQ_TABLE_END); i++)
> -   if (table[i].frequency < min_freq)
> -   min_freq = table[i].frequency;
> +   cpufreq_for_each_entry(pos, table)
> +   if (pos->frequency < min_freq)
> +   min_freq = pos->frequency;
> return min_freq;
>  }
>
>  /* get the maximum frequency in the cpufreq_frequency_table */
>  static inline u32 get_table_max(struct cpufreq_frequency_table *table)
>  {
> -   int i;
> +   struct cpufreq_frequency_table *pos;
> uint32_t max_freq = 0;
> -   for (i = 0; (table[i].frequency != CPUFREQ_TABLE_END); i++)
> -   if (table[i].frequency > max_freq)
> -   max_freq = table[i].frequency;
> +   cpufreq_for_each_entry(pos, table)
> +   if (pos->frequency > max_freq)
> +   max_freq = pos->frequency;
> return max_freq;
>  }
>
> diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
> index ecaaebf..0cd9b4d 100644
> --- a/drivers/cpufreq/cpufreq_stats.c
> +++ b/drivers/cpufreq/cpufreq_stats.c
> @@ -182,11 +182,11 @@ static void cpufreq_stats_free_table(unsigned int cpu)
>
>  static int __cpufreq_stats_create_table(struct cpufreq_policy *policy)
>  {
> -   unsigned int i, j, count = 0, ret = 0;
> +   unsigned int i, count = 0, ret = 0;
> struct cpufreq_stats *stat;
> unsigned int alloc_size;
> unsigned int cpu = policy->cpu;
> -   struct cpufreq_frequency_table *table;
> +   struct cpufreq_frequency_table *pos, *table;
>
> table = cpufreq_frequency_get_table(cpu);
> if (unlikely(!table))
> @@ -205,12 +205,8 @@ static int __cpufreq_stats_create_table(struct 
> cpufreq_policy *policy)
> stat->cpu = cpu;
> per_cpu(cpufreq_stats_table, cpu) = stat;
>
> -   for (i = 0; table[i].frequency != CPUFREQ_TABLE_EN

[PATCH v5 2/8] cpufreq: Use cpufreq_for_each_* macros for frequency table iteration

2014-04-25 Thread Stratos Karafotis
The cpufreq core now supports the cpufreq_for_each_entry and
cpufreq_for_each_valid_entry macros helpers for iteration over the
cpufreq_frequency_table, so use them.

It should have no functional changes.

Signed-off-by: Stratos Karafotis 
---
 drivers/cpufreq/acpi-cpufreq.c   |  9 +++---
 drivers/cpufreq/arm_big_little.c | 16 +--
 drivers/cpufreq/cpufreq_stats.c  | 24 ++--
 drivers/cpufreq/dbx500-cpufreq.c |  8 ++
 drivers/cpufreq/elanfreq.c   |  9 +++---
 drivers/cpufreq/exynos-cpufreq.c | 11 ---
 drivers/cpufreq/exynos5440-cpufreq.c | 30 +--
 drivers/cpufreq/freq_table.c | 56 
 drivers/cpufreq/longhaul.c   | 11 ---
 drivers/cpufreq/pasemi-cpufreq.c | 10 +++
 drivers/cpufreq/powernow-k6.c| 14 -
 drivers/cpufreq/ppc_cbe_cpufreq.c|  9 +++---
 drivers/cpufreq/s3c2416-cpufreq.c| 40 +++---
 drivers/cpufreq/s3c64xx-cpufreq.c| 15 --
 14 files changed, 116 insertions(+), 146 deletions(-)

diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
index 000e4e0..b0c18ed 100644
--- a/drivers/cpufreq/acpi-cpufreq.c
+++ b/drivers/cpufreq/acpi-cpufreq.c
@@ -213,7 +213,7 @@ static unsigned extract_io(u32 value, struct 
acpi_cpufreq_data *data)
 
 static unsigned extract_msr(u32 msr, struct acpi_cpufreq_data *data)
 {
-   int i;
+   struct cpufreq_frequency_table *pos;
struct acpi_processor_performance *perf;
 
if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
@@ -223,10 +223,9 @@ static unsigned extract_msr(u32 msr, struct 
acpi_cpufreq_data *data)
 
perf = data->acpi_data;
 
-   for (i = 0; data->freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
-   if (msr == perf->states[data->freq_table[i].driver_data].status)
-   return data->freq_table[i].frequency;
-   }
+   cpufreq_for_each_entry(pos, data->freq_table)
+   if (msr == perf->states[pos->driver_data].status)
+   return pos->frequency;
return data->freq_table[0].frequency;
 }
 
diff --git a/drivers/cpufreq/arm_big_little.c b/drivers/cpufreq/arm_big_little.c
index bad2ed3..1f4d4e3 100644
--- a/drivers/cpufreq/arm_big_little.c
+++ b/drivers/cpufreq/arm_big_little.c
@@ -226,22 +226,22 @@ static inline u32 get_table_count(struct 
cpufreq_frequency_table *table)
 /* get the minimum frequency in the cpufreq_frequency_table */
 static inline u32 get_table_min(struct cpufreq_frequency_table *table)
 {
-   int i;
+   struct cpufreq_frequency_table *pos;
uint32_t min_freq = ~0;
-   for (i = 0; (table[i].frequency != CPUFREQ_TABLE_END); i++)
-   if (table[i].frequency < min_freq)
-   min_freq = table[i].frequency;
+   cpufreq_for_each_entry(pos, table)
+   if (pos->frequency < min_freq)
+   min_freq = pos->frequency;
return min_freq;
 }
 
 /* get the maximum frequency in the cpufreq_frequency_table */
 static inline u32 get_table_max(struct cpufreq_frequency_table *table)
 {
-   int i;
+   struct cpufreq_frequency_table *pos;
uint32_t max_freq = 0;
-   for (i = 0; (table[i].frequency != CPUFREQ_TABLE_END); i++)
-   if (table[i].frequency > max_freq)
-   max_freq = table[i].frequency;
+   cpufreq_for_each_entry(pos, table)
+   if (pos->frequency > max_freq)
+   max_freq = pos->frequency;
return max_freq;
 }
 
diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
index ecaaebf..0cd9b4d 100644
--- a/drivers/cpufreq/cpufreq_stats.c
+++ b/drivers/cpufreq/cpufreq_stats.c
@@ -182,11 +182,11 @@ static void cpufreq_stats_free_table(unsigned int cpu)
 
 static int __cpufreq_stats_create_table(struct cpufreq_policy *policy)
 {
-   unsigned int i, j, count = 0, ret = 0;
+   unsigned int i, count = 0, ret = 0;
struct cpufreq_stats *stat;
unsigned int alloc_size;
unsigned int cpu = policy->cpu;
-   struct cpufreq_frequency_table *table;
+   struct cpufreq_frequency_table *pos, *table;
 
table = cpufreq_frequency_get_table(cpu);
if (unlikely(!table))
@@ -205,12 +205,8 @@ static int __cpufreq_stats_create_table(struct 
cpufreq_policy *policy)
stat->cpu = cpu;
per_cpu(cpufreq_stats_table, cpu) = stat;
 
-   for (i = 0; table[i].frequency != CPUFREQ_TABLE_END; i++) {
-   unsigned int freq = table[i].frequency;
-   if (freq == CPUFREQ_ENTRY_INVALID)
-   continue;
+   cpufreq_for_each_valid_entry(pos, table)
count++;
-   }
 
alloc_size = count * sizeof(int) + count * sizeof(u64);
 
@@ -228,15 +224,11 @@ static int __cpufreq_stats_create_table(struct 
cpufreq_policy *policy)
 #ifdef CONFIG_CPU_FREQ_STAT_DETAILS