diff options
Diffstat (limited to 'drivers/cpufreq/exynos-cpufreq.c')
| -rw-r--r-- | drivers/cpufreq/exynos-cpufreq.c | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/cpufreq/exynos-cpufreq.c b/drivers/cpufreq/exynos-cpufreq.c index b243a7ee01f..af2d81e10f7 100644 --- a/drivers/cpufreq/exynos-cpufreq.c +++ b/drivers/cpufreq/exynos-cpufreq.c @@ -62,8 +62,18 @@ static int exynos_target(struct cpufreq_policy *policy,  		goto out;  	} -	if (cpufreq_frequency_table_target(policy, freq_table, -					   freqs.old, relation, &old_index)) { +	/* +	 * The policy max have been changed so that we cannot get proper +	 * old_index with cpufreq_frequency_table_target(). Thus, ignore +	 * policy and get the index from the raw freqeuncy table. +	 */ +	for (old_index = 0; +		freq_table[old_index].frequency != CPUFREQ_TABLE_END; +		old_index++) +		if (freq_table[old_index].frequency == freqs.old) +			break; + +	if (freq_table[old_index].frequency == CPUFREQ_TABLE_END) {  		ret = -EINVAL;  		goto out;  	}  |