mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
Pull thermal management updates from Zhang Rui: - Improve thermal cpu_cooling interaction with cpufreq core. The cpu_cooling driver is designed to use CPU frequency scaling to avoid high thermal states for a platform. But it wasn't glued really well with cpufreq core. For example clipped-cpus is copied from the policy structure and its much better to use the policy->cpus (or related_cpus) fields directly as they may have got updated. Not that things were broken before this series, but they can be optimized a bit more. This series tries to improve interactions between cpufreq core and cpu_cooling driver and does some fixes/cleanups to the cpu_cooling driver. (Viresh Kumar) - A couple of fixes and cleanups in thermal core and imx, hisilicon, bcm_2835, int340x thermal drivers. (Arvind Yadav, Dan Carpenter, Sumeet Pawnikar, Srinivas Pandruvada, Willy WOLFF) * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (24 commits) thermal: bcm2835: fix an error code in probe() thermal: hisilicon: Handle return value of clk_prepare_enable thermal: imx: Handle return value of clk_prepare_enable thermal: int340x: check for sensor when PTYP is missing Thermal/int340x: Fix few typos and kernel-doc style thermal: fix source code documentation for parameters thermal: cpu_cooling: Replace kmalloc with kmalloc_array thermal: cpu_cooling: Rearrange struct cpufreq_cooling_device thermal: cpu_cooling: 'freq' can't be zero in cpufreq_state2power() thermal: cpu_cooling: don't store cpu_dev in cpufreq_cdev thermal: cpu_cooling: get_level() can't fail thermal: cpu_cooling: create structure for idle time stats thermal: cpu_cooling: merge frequency and power tables thermal: cpu_cooling: get rid of 'allowed_cpus' thermal: cpu_cooling: OPPs are registered for all CPUs thermal: cpu_cooling: store cpufreq policy cpufreq: create cpufreq_table_count_valid_entries() thermal: cpu_cooling: use cpufreq_policy to register cooling device thermal: cpu_cooling: get rid of a variable in cpufreq_set_cur_state() thermal: cpu_cooling: remove cpufreq_cooling_get_level() ...
This commit is contained in:
commit
4d25ec1966
18 changed files with 342 additions and 419 deletions
|
|
@ -540,7 +540,7 @@ static void bL_cpufreq_ready(struct cpufreq_policy *policy)
|
|||
&power_coefficient);
|
||||
|
||||
cdev[cur_cluster] = of_cpufreq_power_cooling_register(np,
|
||||
policy->related_cpus, power_coefficient, NULL);
|
||||
policy, power_coefficient, NULL);
|
||||
if (IS_ERR(cdev[cur_cluster])) {
|
||||
dev_err(cpu_dev,
|
||||
"running cpufreq without cooling device: %ld\n",
|
||||
|
|
|
|||
|
|
@ -326,7 +326,7 @@ static void cpufreq_ready(struct cpufreq_policy *policy)
|
|||
&power_coefficient);
|
||||
|
||||
priv->cdev = of_cpufreq_power_cooling_register(np,
|
||||
policy->related_cpus, power_coefficient, NULL);
|
||||
policy, power_coefficient, NULL);
|
||||
if (IS_ERR(priv->cdev)) {
|
||||
dev_err(priv->cpu_dev,
|
||||
"running cpufreq without cooling device: %ld\n",
|
||||
|
|
|
|||
|
|
@ -170,11 +170,10 @@ void cpufreq_stats_create_table(struct cpufreq_policy *policy)
|
|||
unsigned int i = 0, count = 0, ret = -ENOMEM;
|
||||
struct cpufreq_stats *stats;
|
||||
unsigned int alloc_size;
|
||||
struct cpufreq_frequency_table *pos, *table;
|
||||
struct cpufreq_frequency_table *pos;
|
||||
|
||||
/* We need cpufreq table for creating stats table */
|
||||
table = policy->freq_table;
|
||||
if (unlikely(!table))
|
||||
count = cpufreq_table_count_valid_entries(policy);
|
||||
if (!count)
|
||||
return;
|
||||
|
||||
/* stats already initialized */
|
||||
|
|
@ -185,10 +184,6 @@ void cpufreq_stats_create_table(struct cpufreq_policy *policy)
|
|||
if (!stats)
|
||||
return;
|
||||
|
||||
/* Find total allocation size */
|
||||
cpufreq_for_each_valid_entry(pos, table)
|
||||
count++;
|
||||
|
||||
alloc_size = count * sizeof(int) + count * sizeof(u64);
|
||||
|
||||
alloc_size += count * count * sizeof(int);
|
||||
|
|
@ -205,7 +200,7 @@ void cpufreq_stats_create_table(struct cpufreq_policy *policy)
|
|||
stats->max_state = count;
|
||||
|
||||
/* Find valid-unique entries */
|
||||
cpufreq_for_each_valid_entry(pos, table)
|
||||
cpufreq_for_each_valid_entry(pos, policy->freq_table)
|
||||
if (freq_table_get_index(stats, pos->frequency) == -1)
|
||||
stats->freq_table[i++] = pos->frequency;
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ static int dbx500_cpufreq_exit(struct cpufreq_policy *policy)
|
|||
|
||||
static void dbx500_cpufreq_ready(struct cpufreq_policy *policy)
|
||||
{
|
||||
cdev = cpufreq_cooling_register(policy->cpus);
|
||||
cdev = cpufreq_cooling_register(policy);
|
||||
if (IS_ERR(cdev))
|
||||
pr_err("Failed to register cooling device %ld\n", PTR_ERR(cdev));
|
||||
else
|
||||
|
|
|
|||
|
|
@ -320,9 +320,7 @@ static void mtk_cpufreq_ready(struct cpufreq_policy *policy)
|
|||
of_property_read_u32(np, DYNAMIC_POWER, &capacitance);
|
||||
|
||||
info->cdev = of_cpufreq_power_cooling_register(np,
|
||||
policy->related_cpus,
|
||||
capacitance,
|
||||
NULL);
|
||||
policy, capacitance, NULL);
|
||||
|
||||
if (IS_ERR(info->cdev)) {
|
||||
dev_err(info->cpu_dev,
|
||||
|
|
|
|||
|
|
@ -278,8 +278,7 @@ static void qoriq_cpufreq_ready(struct cpufreq_policy *policy)
|
|||
struct device_node *np = of_get_cpu_node(policy->cpu, NULL);
|
||||
|
||||
if (of_find_property(np, "#cooling-cells", NULL)) {
|
||||
cpud->cdev = of_cpufreq_cooling_register(np,
|
||||
policy->related_cpus);
|
||||
cpud->cdev = of_cpufreq_cooling_register(np, policy);
|
||||
|
||||
if (IS_ERR(cpud->cdev) && PTR_ERR(cpud->cdev) != -ENOSYS) {
|
||||
pr_err("cpu%d is not running as cooling device: %ld\n",
|
||||
|
|
|
|||
Loading…
Reference in a new issue