cpufreq: exynos: Fix hang in pm handler due to frequency mismatch
When pm handler set freq & voltage, frequency mismatch occurred. Because freqs.new isn't set in pm handler. Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
This commit is contained in:
parent
229b21e2b7
commit
c098ea74b2
@ -69,9 +69,10 @@ static int exynos_cpufreq_scale(unsigned int target_freq)
|
||||
int ret = 0;
|
||||
|
||||
freqs.old = policy->cur;
|
||||
freqs.new = target_freq;
|
||||
freqs.cpu = policy->cpu;
|
||||
|
||||
if (target_freq == freqs.old)
|
||||
if (freqs.new == freqs.old)
|
||||
goto out;
|
||||
|
||||
/*
|
||||
@ -159,6 +160,7 @@ static int exynos_target(struct cpufreq_policy *policy,
|
||||
{
|
||||
struct cpufreq_frequency_table *freq_table = exynos_info->freq_table;
|
||||
unsigned int index;
|
||||
unsigned int new_freq;
|
||||
int ret = 0;
|
||||
|
||||
mutex_lock(&cpufreq_lock);
|
||||
@ -172,9 +174,9 @@ static int exynos_target(struct cpufreq_policy *policy,
|
||||
goto out;
|
||||
}
|
||||
|
||||
freqs.new = freq_table[index].frequency;
|
||||
new_freq = freq_table[index].frequency;
|
||||
|
||||
ret = exynos_cpufreq_scale(freqs.new);
|
||||
ret = exynos_cpufreq_scale(new_freq);
|
||||
|
||||
out:
|
||||
mutex_unlock(&cpufreq_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user