]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/cpufreq/cpufreq.c
Merge tag 'platform-drivers-x86-v4.10-1' of git://git.infradead.org/users/dvhart...
[karo-tx-linux.git] / drivers / cpufreq / cpufreq.c
index 6e6c1fb60fbc779157a3741334a8cef591a5a14f..cc475eff90b3e5a8964d3a3a28c5ad334657788b 100644 (file)
@@ -1526,7 +1526,10 @@ unsigned int cpufreq_get(unsigned int cpu)
 
        if (policy) {
                down_read(&policy->rwsem);
-               ret_freq = __cpufreq_get(policy);
+
+               if (!policy_is_inactive(policy))
+                       ret_freq = __cpufreq_get(policy);
+
                up_read(&policy->rwsem);
 
                cpufreq_cpu_put(policy);
@@ -2254,17 +2257,19 @@ static int cpufreq_set_policy(struct cpufreq_policy *policy,
  *     Useful for policy notifiers which have different necessities
  *     at different times.
  */
-int cpufreq_update_policy(unsigned int cpu)
+void cpufreq_update_policy(unsigned int cpu)
 {
        struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
        struct cpufreq_policy new_policy;
-       int ret;
 
        if (!policy)
-               return -ENODEV;
+               return;
 
        down_write(&policy->rwsem);
 
+       if (policy_is_inactive(policy))
+               goto unlock;
+
        pr_debug("updating policy for CPU %u\n", cpu);
        memcpy(&new_policy, policy, sizeof(*policy));
        new_policy.min = policy->user_policy.min;
@@ -2275,24 +2280,20 @@ int cpufreq_update_policy(unsigned int cpu)
         * -> ask driver for current freq and notify governors about a change
         */
        if (cpufreq_driver->get && !cpufreq_driver->setpolicy) {
-               if (cpufreq_suspended) {
-                       ret = -EAGAIN;
+               if (cpufreq_suspended)
                        goto unlock;
-               }
+
                new_policy.cur = cpufreq_update_current_freq(policy);
-               if (WARN_ON(!new_policy.cur)) {
-                       ret = -EIO;
+               if (WARN_ON(!new_policy.cur))
                        goto unlock;
-               }
        }
 
-       ret = cpufreq_set_policy(policy, &new_policy);
+       cpufreq_set_policy(policy, &new_policy);
 
 unlock:
        up_write(&policy->rwsem);
 
        cpufreq_cpu_put(policy);
-       return ret;
 }
 EXPORT_SYMBOL(cpufreq_update_policy);