summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSai Charan Gurrappadi <sgurrappadi@nvidia.com>2012-06-19 10:34:14 -0700
committerSimone Willett <swillett@nvidia.com>2012-07-03 16:49:50 -0700
commit233acfbfe5910956f09ba9b9541ce0f1996ca190 (patch)
treecd1c7cd4734881afe02dbeb91b610425184f0088
parentd9c55b1d96fb5d71b650f17af93a8dee8366103a (diff)
ARM: cpuquiet: Go to and stay on G-CPU if min_cpus 1 is requested
Only return to LP-CPU if minimum number of cpus requested by the PM QoS interface is at the default 0 level. Change-Id: I1384c7fc62b86e385e10b4baaf81eb600f31da6e Signed-off-by: Sai Charan Gurrappadi <sgurrappadi@nvidia.com> Reviewed-on: http://git-master/r/109831 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/cpuquiet.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/cpuquiet.c b/arch/arm/mach-tegra/cpuquiet.c
index 2b5826d97401..7ef217eb6872 100644
--- a/arch/arm/mach-tegra/cpuquiet.c
+++ b/arch/arm/mach-tegra/cpuquiet.c
@@ -160,7 +160,8 @@ static void tegra_cpuquiet_work_func(struct work_struct *work)
break;
case TEGRA_CPQ_SWITCH_TO_LP:
if (!is_lp_cluster() && !no_lp &&
- num_online_cpus() == 1) {
+ !pm_qos_request(PM_QOS_MIN_ONLINE_CPUS)
+ && num_online_cpus() == 1) {
if (!clk_set_parent(cpu_clk, cpu_lp_clk)) {
/*catch-up with governor target speed*/
tegra_cpu_set_speed_cap(NULL);
@@ -219,7 +220,7 @@ static int min_cpus_notify(struct notifier_block *nb, unsigned long n, void *p)
{
mutex_lock(tegra3_cpu_lock);
- if ((n >= 2) && is_lp_cluster()) {
+ if ((n >= 1) && is_lp_cluster()) {
/* make sure cpu rate is within g-mode range before switching */
unsigned int speed = max(
tegra_getspeed(0), clk_get_min_rate(cpu_g_clk) / 1000);