diff options
author | Sai Charan Gurrappadi <sgurrappadi@nvidia.com> | 2012-06-19 10:34:14 -0700 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-07-03 16:49:50 -0700 |
commit | 233acfbfe5910956f09ba9b9541ce0f1996ca190 (patch) | |
tree | cd1c7cd4734881afe02dbeb91b610425184f0088 | |
parent | d9c55b1d96fb5d71b650f17af93a8dee8366103a (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.c | 5 |
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); |