thermal: cpu_cooling: Remove cpu_dev update on policy CPU update

It was initially understood that an update to the cpu_device
(cached in cpufreq_cooling_device) was required to ascertain the
correct operating point of the device on a cpufreq policy->cpu update
or creation or deletion of a cpufreq policy.
(e.g. when the existing policy CPU goes offline).

This update is not required and it is possible to ascertain the OPPs
from the leading CPU in a cpufreq domain even if the CPU is hotplugged out.

Fixes: e0128d8ab423 ("thermal: cpu_cooling: implement the power cooling device API")
Acked-by: Javi Merino <javi.merino@arm.com>
Signed-off-by: Kapileshwar Singh <kapileshwar.singh@arm.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
This commit is contained in:
Kapileshwar Singh 2015-03-16 12:00:50 +00:00 committed by Eduardo Valentin
parent 9f38271c6f
commit 54b92aae83

View File

@ -199,39 +199,6 @@ unsigned long cpufreq_cooling_get_level(unsigned int cpu, unsigned int freq)
}
EXPORT_SYMBOL_GPL(cpufreq_cooling_get_level);
static void update_cpu_device(int cpu)
{
struct cpufreq_cooling_device *cpufreq_dev;
mutex_lock(&cooling_cpufreq_lock);
list_for_each_entry(cpufreq_dev, &cpufreq_dev_list, node) {
if (cpumask_test_cpu(cpu, &cpufreq_dev->allowed_cpus)) {
cpufreq_dev->cpu_dev = get_cpu_device(cpu);
if (!cpufreq_dev->cpu_dev) {
dev_warn(&cpufreq_dev->cool_dev->device,
"No cpu device for new policy cpu %d\n",
cpu);
}
break;
}
}
mutex_unlock(&cooling_cpufreq_lock);
}
static void remove_cpu_device(int cpu)
{
struct cpufreq_cooling_device *cpufreq_dev;
mutex_lock(&cooling_cpufreq_lock);
list_for_each_entry(cpufreq_dev, &cpufreq_dev_list, node) {
if (cpumask_test_cpu(cpu, &cpufreq_dev->allowed_cpus)) {
cpufreq_dev->cpu_dev = NULL;
break;
}
}
mutex_unlock(&cooling_cpufreq_lock);
}
/**
* cpufreq_thermal_notifier - notifier callback for cpufreq policy change.
* @nb: struct notifier_block * with callback info.
@ -268,13 +235,6 @@ static int cpufreq_thermal_notifier(struct notifier_block *nb,
}
mutex_unlock(&cooling_cpufreq_lock);
break;
case CPUFREQ_CREATE_POLICY:
update_cpu_device(policy->cpu);
break;
case CPUFREQ_REMOVE_POLICY:
remove_cpu_device(policy->cpu);
break;
default:
return NOTIFY_DONE;
}