Merge tag 'printk-for-5.10-fixup' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / drivers / cpufreq / qcom-cpufreq-hw.c
index c485be8..9ed5341 100644 (file)
@@ -91,8 +91,6 @@ static int qcom_cpufreq_hw_target_index(struct cpufreq_policy *policy,
        if (icc_scaling_enabled)
                qcom_cpufreq_set_bw(policy, freq);
 
-       arch_set_freq_scale(policy->related_cpus, freq,
-                           policy->cpuinfo.max_freq);
        return 0;
 }
 
@@ -122,16 +120,11 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy,
        struct qcom_cpufreq_data *data = policy->driver_data;
        const struct qcom_cpufreq_soc_data *soc_data = data->soc_data;
        unsigned int index;
-       unsigned long freq;
 
        index = policy->cached_resolved_idx;
        writel_relaxed(index, data->base + soc_data->reg_perf_state);
 
-       freq = policy->freq_table[index].frequency;
-       arch_set_freq_scale(policy->related_cpus, freq,
-                           policy->cpuinfo.max_freq);
-
-       return freq;
+       return policy->freq_table[index].frequency;
 }
 
 static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev,
@@ -187,10 +180,15 @@ static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev,
                        freq = cpu_hw_rate / 1000;
 
                if (freq != prev_freq && core_count != LUT_TURBO_IND) {
-                       table[i].frequency = freq;
-                       qcom_cpufreq_update_opp(cpu_dev, freq, volt);
-                       dev_dbg(cpu_dev, "index=%d freq=%d, core_count %d\n", i,
+                       if (!qcom_cpufreq_update_opp(cpu_dev, freq, volt)) {
+                               table[i].frequency = freq;
+                               dev_dbg(cpu_dev, "index=%d freq=%d, core_count %d\n", i,
                                freq, core_count);
+                       } else {
+                               dev_warn(cpu_dev, "failed to update OPP for freq=%d\n", freq);
+                               table[i].frequency = CPUFREQ_ENTRY_INVALID;
+                       }
+
                } else if (core_count == LUT_TURBO_IND) {
                        table[i].frequency = CPUFREQ_ENTRY_INVALID;
                }
@@ -207,9 +205,13 @@ static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev,
                         * as the boost frequency
                         */
                        if (prev->frequency == CPUFREQ_ENTRY_INVALID) {
-                               prev->frequency = prev_freq;
-                               prev->flags = CPUFREQ_BOOST_FREQ;
-                               qcom_cpufreq_update_opp(cpu_dev, prev_freq, volt);
+                               if (!qcom_cpufreq_update_opp(cpu_dev, prev_freq, volt)) {
+                                       prev->frequency = prev_freq;
+                                       prev->flags = CPUFREQ_BOOST_FREQ;
+                               } else {
+                                       dev_warn(cpu_dev, "failed to update OPP for freq=%d\n",
+                                                freq);
+                               }
                        }
 
                        break;