diff options
author | Olav Haugan <ohaugan@codeaurora.org> | 2016-05-29 19:50:47 -0700 |
---|---|---|
committer | Olav Haugan <ohaugan@codeaurora.org> | 2016-09-24 10:59:57 -0700 |
commit | bc24c063ef8b8c16432fd328403972ae3da12526 (patch) | |
tree | b99a803e787e9a79727d71fd94548640c5f2bea0 /kernel/power | |
parent | 287b1a8c1cb83f2c4bed561a2dc48b673e4eb1c9 (diff) |
pmqos: Enable cpu isolation awareness
Set long latency requirement for isolated cores to ensure LPM logic will
select a deep sleep state.
Change-Id: I83e9fbb800df259616a145d311b50627dc42a5ff
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
Diffstat (limited to 'kernel/power')
-rw-r--r-- | kernel/power/qos.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/power/qos.c b/kernel/power/qos.c index 8ecc7b3f7dd9..69c32c42080f 100644 --- a/kernel/power/qos.c +++ b/kernel/power/qos.c @@ -45,6 +45,7 @@ #include <linux/seq_file.h> #include <linux/irq.h> #include <linux/irqdesc.h> +#include <linux/cpumask.h> #include <linux/uaccess.h> #include <linux/export.h> @@ -447,6 +448,9 @@ EXPORT_SYMBOL_GPL(pm_qos_request); int pm_qos_request_for_cpu(int pm_qos_class, int cpu) { + if (cpu_isolated(cpu)) + return INT_MAX; + return pm_qos_array[pm_qos_class]->constraints->target_per_cpu[cpu]; } EXPORT_SYMBOL(pm_qos_request_for_cpu); @@ -469,6 +473,9 @@ int pm_qos_request_for_cpumask(int pm_qos_class, struct cpumask *mask) val = c->default_value; for_each_cpu(cpu, mask) { + if (cpu_isolated(cpu)) + continue; + switch (c->type) { case PM_QOS_MIN: if (c->target_per_cpu[cpu] < val) |