diff options
author | Tuukka Tikkanen <tuukka.tikkanen@linaro.org> | 2015-01-22 03:38:11 +0200 |
---|---|---|
committer | Tuukka Tikkanen <tuukka.tikkanen@linaro.org> | 2015-01-22 03:44:42 +0200 |
commit | 7f365110226a5cb350df98dc7270e851093c8668 (patch) | |
tree | a82bccbd027c333e3bc5e8faef17d96d959f610d /idlestat.c | |
parent | 946d1fbdbef5fd01dfb1c56f392031a9807dc744 (diff) |
Fix P-state calculations
alloc_pstate() searched the array of existing frequencies as if
the frequencies were in descending order (by frequency) but
then inserted the new frequency as if the frequencies were
to be sorted into ascending order. The search order was changed
to ascending order.
cluster_get_highest_freq() actually returned the lowest active
frequency in the cluster. core_get_highest_freq() acted in the
similar way. These have been fixed.
Signed-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>
Diffstat (limited to 'idlestat.c')
-rw-r--r-- | idlestat.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -407,7 +407,7 @@ static void output_pstates(FILE *f, struct init_pstates *initp, int nrcpus, * This function checks the array of struct cpufreq_pstate in @pstates * for an entry for @freq. If one if found, the index for this entry * is returned. If not, a new entry is inserted into the array so that - * the frequencies are in decreasing order and the index for the new + * the frequencies are in increasing order and the index for the new * entry is returned. * @return: the index of the existing or newly allocated pstate struct */ @@ -419,7 +419,7 @@ static int alloc_pstate(struct cpufreq_pstates *pstates, unsigned int freq) pstate = pstates->pstate; nrfreq = pstates->max; - for (i = 0; i < nrfreq && freq <= pstate[i].freq; i++) { + for (i = 0; i < nrfreq && freq >= pstate[i].freq; i++) { if (pstate[i].freq == freq) return i; } |