cpufreq: resume drivers before enabling governors
authorViresh Kumar <viresh.kumar@linaro.org>
Mon, 24 Mar 2014 07:00:29 +0000 (12:30 +0530)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 26 Mar 2014 15:37:18 +0000 (16:37 +0100)
During suspend, we first stop governors and then suspend cpufreq drivers and
resume must be exactly opposite of that. i.e. resume drivers first and then
start governors.

But the current code in resume enables governors first and then resume drivers.
Fix it be changing code sequence there.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/cpufreq.c

index 3aa7a7a226b3f23f2977975651fc0fc2869ffd7b..d8d6bc9d18154424a28fa10f23508428010a4847 100644 (file)
@@ -1652,14 +1652,13 @@ void cpufreq_resume(void)
        cpufreq_suspended = false;
 
        list_for_each_entry(policy, &cpufreq_policy_list, policy_list) {
-               if (__cpufreq_governor(policy, CPUFREQ_GOV_START)
+               if (cpufreq_driver->resume && cpufreq_driver->resume(policy))
+                       pr_err("%s: Failed to resume driver: %p\n", __func__,
+                               policy);
+               else if (__cpufreq_governor(policy, CPUFREQ_GOV_START)
                    || __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS))
                        pr_err("%s: Failed to start governor for policy: %p\n",
                                __func__, policy);
-               else if (cpufreq_driver->resume
-                   && cpufreq_driver->resume(policy))
-                       pr_err("%s: Failed to resume driver: %p\n", __func__,
-                               policy);
 
                /*
                 * schedule call cpufreq_update_policy() for boot CPU, i.e. last