|
@@ -437,6 +437,7 @@ static struct notifier_block thermal_cpufreq_notifier_block = {
|
|
|
* __cpufreq_cooling_register - helper function to create cpufreq cooling device
|
|
|
* @np: a valid struct device_node to the cooling device device tree node
|
|
|
* @clip_cpus: cpumask of cpus where the frequency constraints will happen.
|
|
|
+ * Normally this should be same as cpufreq policy->related_cpus.
|
|
|
*
|
|
|
* This interface function registers the cpufreq cooling device with the name
|
|
|
* "thermal-cpufreq-%x". This api can support multiple instances of cpufreq
|
|
@@ -452,30 +453,14 @@ __cpufreq_cooling_register(struct device_node *np,
|
|
|
{
|
|
|
struct thermal_cooling_device *cool_dev;
|
|
|
struct cpufreq_cooling_device *cpufreq_dev;
|
|
|
- unsigned int min = 0, max = 0;
|
|
|
char dev_name[THERMAL_NAME_LENGTH];
|
|
|
- int ret, i;
|
|
|
- struct cpufreq_policy policy;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!cpufreq_frequency_get_table(cpumask_first(clip_cpus))) {
|
|
|
pr_debug("%s: CPUFreq table not found\n", __func__);
|
|
|
return ERR_PTR(-EPROBE_DEFER);
|
|
|
}
|
|
|
|
|
|
- /* Verify that all the clip cpus have same freq_min, freq_max limit */
|
|
|
- for_each_cpu(i, clip_cpus) {
|
|
|
- /* continue if cpufreq policy not found and not return error */
|
|
|
- if (!cpufreq_get_policy(&policy, i))
|
|
|
- continue;
|
|
|
- if (min == 0 && max == 0) {
|
|
|
- min = policy.cpuinfo.min_freq;
|
|
|
- max = policy.cpuinfo.max_freq;
|
|
|
- } else {
|
|
|
- if (min != policy.cpuinfo.min_freq ||
|
|
|
- max != policy.cpuinfo.max_freq)
|
|
|
- return ERR_PTR(-EINVAL);
|
|
|
- }
|
|
|
- }
|
|
|
cpufreq_dev = kzalloc(sizeof(*cpufreq_dev), GFP_KERNEL);
|
|
|
if (!cpufreq_dev)
|
|
|
return ERR_PTR(-ENOMEM);
|