On Fri, Aug 31, 2012 at 12:05 PM, Hongbo Zhang hongbo.zhang@linaro.org wrote:
+/* Local function to create cpufreq clip table */ +static int cpufreq_table_create(struct platform_device *pdev,
struct freq_clip_table **freq_tab, int *num_freq)+{
struct cpufreq_frequency_table *table;struct freq_clip_table *clip;unsigned int temp;int i, j, count = 0;table = cpufreq_frequency_get_table(0);if (!table)return -ENODATA;/* Check number of frequencies */for (i = 0; (table[i].frequency != CPUFREQ_TABLE_END); i++) {unneeded () in the for condition
if (table[i].frequency == CPUFREQ_ENTRY_INVALID)continue;count++;}clip = devm_kzalloc(&pdev->dev,sizeof(struct freq_clip_table) * count,GFP_KERNEL);
/* Save frequencies */count = 0;for (i = 0; (table[i].frequency != CPUFREQ_TABLE_END); i++) {if (table[i].frequency == CPUFREQ_ENTRY_INVALID)continue;clip[count].freq_clip_max = table[i].frequency;count++;}You are counting the frequencies twice: there is no need to re-set count to 0 and re-increment it in the for loop.
Francesco, thank you for all of your comments very much. The second count is used as index of array clip[], it is not redundant. If don't re-set it to 0, count-- should be used, so we set the array clip[] from the end, it seems a bit strange.
You are right, it's not redundant. Also, if the clip array is filled from the end using --count, the information on the array size would be lost, so this is not an option.
Francesco