Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[firefly-linux-kernel-4.4.55.git] / drivers / cpufreq / s3c64xx-cpufreq.c
index 306d395de9907b95104385931a0d635251df070c..13bb4bae64ee11505fb8a072d041ec9a8268bf84 100644 (file)
@@ -104,7 +104,8 @@ static int s3c64xx_cpufreq_set_target(struct cpufreq_policy *policy,
                if (ret != 0) {
                        pr_err("Failed to set VDDARM for %dkHz: %d\n",
                               freqs.new, ret);
-                       goto err;
+                       freqs.new = freqs.old;
+                       goto post_notify;
                }
        }
 #endif
@@ -113,10 +114,13 @@ static int s3c64xx_cpufreq_set_target(struct cpufreq_policy *policy,
        if (ret < 0) {
                pr_err("Failed to set rate %dkHz: %d\n",
                       freqs.new, ret);
-               goto err;
+               freqs.new = freqs.old;
        }
 
+post_notify:
        cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
+       if (ret)
+               goto err;
 
 #ifdef CONFIG_REGULATOR
        if (vddarm && freqs.new < freqs.old) {