[CPUFREQ] S3C64xx: Notify transition complete as soon as frequency changed
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 22 Jun 2011 14:08:56 +0000 (15:08 +0100)
committerDave Jones <davej@redhat.com>
Wed, 13 Jul 2011 22:29:55 +0000 (18:29 -0400)
The CPUFREQ_POSTCHANGE notification is used to update things that depend on
the system clock rates. Since this may include the interfaces used to talk
to the regulators do the notification before we try to update regulators
to reflect lowered system clock rate.

The voltage scaling is just a power optimisation and may not happen at all
so there's no concern about it not having completed.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Dave Jones <davej@redhat.com>
drivers/cpufreq/s3c64xx-cpufreq.c

index fc69178798e6ef35b8b2a8614cf35df5491e10d8..e818248ab2b1f91bbb9ec2fb495625983b50dfc7 100644 (file)
@@ -112,6 +112,8 @@ static int s3c64xx_cpufreq_set_target(struct cpufreq_policy *policy,
                goto err;
        }
 
+       cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
+
 #ifdef CONFIG_REGULATOR
        if (vddarm && freqs.new < freqs.old) {
                ret = regulator_set_voltage(vddarm,
@@ -125,8 +127,6 @@ static int s3c64xx_cpufreq_set_target(struct cpufreq_policy *policy,
        }
 #endif
 
-       cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
-
        pr_debug("cpufreq: Set actual frequency %lukHz\n",
                 clk_get_rate(armclk) / 1000);