UPSTREAM: cpufreq: Send START policy notification after sending CREATE
authorViresh Kumar <viresh.kumar@linaro.org>
Tue, 24 May 2016 04:56:50 +0000 (10:26 +0530)
committerHuang, Tao <huangtao@rock-chips.com>
Mon, 26 Dec 2016 09:46:23 +0000 (17:46 +0800)
The sequence got a bit wrong as we are sending CPUFREQ_START
notifications even before we have sent CPUFREQ_CREATE_POLICY.

Fix it.

Change-Id: I7d1fba317314bb5e5601b1354494398def156424
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
(cherry picked from commit 388612baba201bdcedfa66782f524dcc507d9f12)

drivers/cpufreq/cpufreq.c

index 7b728143440dab3b24032b95095c6fb5494d5434..0e94bec22807ec855a52a96ba3c0f75386841f5a 100644 (file)
@@ -1296,9 +1296,6 @@ static int cpufreq_online(unsigned int cpu)
                }
        }
 
-       blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
-                                    CPUFREQ_START, policy);
-
        if (new_policy) {
                ret = cpufreq_add_dev_interface(policy);
                if (ret)
@@ -1311,6 +1308,9 @@ static int cpufreq_online(unsigned int cpu)
                write_unlock_irqrestore(&cpufreq_driver_lock, flags);
        }
 
+       blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
+                                    CPUFREQ_START, policy);
+
        ret = cpufreq_init_policy(policy);
        if (ret) {
                pr_err("%s: Failed to initialize policy for cpu: %d (%d)\n",