mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 13:11:40 +00:00
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:
parent
9f38271c6f
commit
54b92aae83
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user