Skip to content

Commit

Permalink
cpufreq: exynos: Fix hang in pm handler due to frequency mismatch
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jonghwan Choi authored and Kukjin Kim committed Feb 5, 2013
1 parent 229b21e commit c098ea7
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions drivers/cpufreq/exynos-cpufreq.c
Original file line number Diff line number Diff line change
@@ -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);

0 comments on commit c098ea7

Please sign in to comment.