Re: [PATCH v5 2/8] cpufreq: Use cpufreq_for_each_* macros for frequency table iteration
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
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
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