Commit c098ea74 authored by Jonghwan Choi's avatar Jonghwan Choi Committed by Kukjin Kim

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: default avatarJonghwan Choi <jhbird.choi@samsung.com>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent 229b21e2
...@@ -69,9 +69,10 @@ static int exynos_cpufreq_scale(unsigned int target_freq) ...@@ -69,9 +69,10 @@ static int exynos_cpufreq_scale(unsigned int target_freq)
int ret = 0; int ret = 0;
freqs.old = policy->cur; freqs.old = policy->cur;
freqs.new = target_freq;
freqs.cpu = policy->cpu; freqs.cpu = policy->cpu;
if (target_freq == freqs.old) if (freqs.new == freqs.old)
goto out; goto out;
/* /*
...@@ -159,6 +160,7 @@ static int exynos_target(struct cpufreq_policy *policy, ...@@ -159,6 +160,7 @@ static int exynos_target(struct cpufreq_policy *policy,
{ {
struct cpufreq_frequency_table *freq_table = exynos_info->freq_table; struct cpufreq_frequency_table *freq_table = exynos_info->freq_table;
unsigned int index; unsigned int index;
unsigned int new_freq;
int ret = 0; int ret = 0;
mutex_lock(&cpufreq_lock); mutex_lock(&cpufreq_lock);
...@@ -172,9 +174,9 @@ static int exynos_target(struct cpufreq_policy *policy, ...@@ -172,9 +174,9 @@ static int exynos_target(struct cpufreq_policy *policy,
goto out; 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: out:
mutex_unlock(&cpufreq_lock); mutex_unlock(&cpufreq_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment