summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/cpuidle-t3.c
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2011-09-30 21:27:37 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:49:12 -0800
commit0d1215e34724bf9e4db329e818d699f5d11986ac (patch)
treea4b87d7383fc993bd2f4a2f8ada318902ca87d1f /arch/arm/mach-tegra/cpuidle-t3.c
parentbe98d35b06c52310e8a5cdb22f0ba454c30313c2 (diff)
ARM: tegra: power: Add Tegra3 cpu idle parameters
Add Tegra3 cpu idle parameters: lp2_0_in_idle and lp_n_in_idle to independently control LP2 mode for boot and secondary cpus. Change-Id: I7e526b9bd78a9d5c3235307bbc89f5fb507bec2b Reviewed-on: http://git-master/r/55630 Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Rebase-Id: Rc6a468b2e9e065c344b2386366d5a47d77ddf037
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle-t3.c')
-rw-r--r--arch/arm/mach-tegra/cpuidle-t3.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/cpuidle-t3.c b/arch/arm/mach-tegra/cpuidle-t3.c
index 8ef8ed45e8bd..d9645ecb1a0c 100644
--- a/arch/arm/mach-tegra/cpuidle-t3.c
+++ b/arch/arm/mach-tegra/cpuidle-t3.c
@@ -67,6 +67,12 @@ static s64 tegra_cpu_wake_by_time[4] = {
LLONG_MAX, LLONG_MAX, LLONG_MAX, LLONG_MAX };
#endif
+static bool lp2_0_in_idle = true;
+module_param(lp2_0_in_idle, bool, 0644);
+
+static bool lp2_n_in_idle = true;
+module_param(lp2_n_in_idle, bool, 0644);
+
static struct clk *cpu_clk_for_dvfs;
static struct clk *twd_clk;
@@ -117,6 +123,9 @@ bool tegra3_lp2_is_allowed(struct cpuidle_device *dev,
if (!tegra_all_cpus_booted)
return false;
+ if ((!lp2_0_in_idle && !dev->cpu) || (!lp2_n_in_idle && dev->cpu))
+ return false;
+
/* On A01, LP2 on slave CPU's cause ranhdom CPU hangs.
* Refer to Bug 804085.
*/