mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-16 07:35:14 +00:00
thermal: cpu_cooling: Merge cpufreq_apply_cooling() into cpufreq_set_cur_state()
cpufreq_apply_cooling() has a single caller, cpufreq_set_cur_state() and cpufreq_set_cur_state() is an unnecessary wrapper over cpufreq_apply_cooling(). Get rid of it by merging both routines. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
This commit is contained in:
parent
7adb635b3c
commit
5194fe4699
1 changed files with 16 additions and 36 deletions
|
@ -253,41 +253,6 @@ static unsigned int get_cpu_frequency(unsigned int cpu, unsigned long level)
|
||||||
return freq;
|
return freq;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* cpufreq_apply_cooling - function to apply frequency clipping.
|
|
||||||
* @cpufreq_device: cpufreq_cooling_device pointer containing frequency
|
|
||||||
* clipping data.
|
|
||||||
* @cooling_state: value of the cooling state.
|
|
||||||
*
|
|
||||||
* Function used to make sure the cpufreq layer is aware of current thermal
|
|
||||||
* limits. The limits are applied by updating the cpufreq policy.
|
|
||||||
*
|
|
||||||
* Return: 0 on success, an error code otherwise (-EINVAL in case wrong
|
|
||||||
* cooling state).
|
|
||||||
*/
|
|
||||||
static int cpufreq_apply_cooling(struct cpufreq_cooling_device *cpufreq_device,
|
|
||||||
unsigned long cooling_state)
|
|
||||||
{
|
|
||||||
unsigned int clip_freq;
|
|
||||||
struct cpumask *mask = &cpufreq_device->allowed_cpus;
|
|
||||||
unsigned int cpu = cpumask_any(mask);
|
|
||||||
|
|
||||||
/* Check if the old cooling action is same as new cooling action */
|
|
||||||
if (cpufreq_device->cpufreq_state == cooling_state)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
clip_freq = get_cpu_frequency(cpu, cooling_state);
|
|
||||||
if (!clip_freq)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
cpufreq_device->cpufreq_state = cooling_state;
|
|
||||||
cpufreq_device->cpufreq_val = clip_freq;
|
|
||||||
|
|
||||||
cpufreq_update_policy(cpu);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cpufreq_thermal_notifier - notifier callback for cpufreq policy change.
|
* cpufreq_thermal_notifier - notifier callback for cpufreq policy change.
|
||||||
* @nb: struct notifier_block * with callback info.
|
* @nb: struct notifier_block * with callback info.
|
||||||
|
@ -391,8 +356,23 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev,
|
||||||
unsigned long state)
|
unsigned long state)
|
||||||
{
|
{
|
||||||
struct cpufreq_cooling_device *cpufreq_device = cdev->devdata;
|
struct cpufreq_cooling_device *cpufreq_device = cdev->devdata;
|
||||||
|
unsigned int cpu = cpumask_any(&cpufreq_device->allowed_cpus);
|
||||||
|
unsigned int clip_freq;
|
||||||
|
|
||||||
return cpufreq_apply_cooling(cpufreq_device, state);
|
/* Check if the old cooling action is same as new cooling action */
|
||||||
|
if (cpufreq_device->cpufreq_state == state)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
clip_freq = get_cpu_frequency(cpu, state);
|
||||||
|
if (!clip_freq)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
cpufreq_device->cpufreq_state = state;
|
||||||
|
cpufreq_device->cpufreq_val = clip_freq;
|
||||||
|
|
||||||
|
cpufreq_update_policy(cpu);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bind cpufreq callbacks to thermal cooling device ops */
|
/* Bind cpufreq callbacks to thermal cooling device ops */
|
||||||
|
|
Loading…
Reference in a new issue