diff options
author | Varun Wadekar <vwadekar@nvidia.com> | 2012-03-30 09:43:40 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-04-05 18:08:36 -0700 |
commit | f31ca2d9e0580b58dc51fde31fc8ace190dd253b (patch) | |
tree | c66a1dd86c3254dd45e8673afbf17361547edfe1 /arch/arm/mach-tegra/cpuidle-t3.c | |
parent | e6d0e0ceec7cd1a7b8085eb31d2e70bc4d15684f (diff) |
ARM: tegra: rethink the cpu suspend-resume code path
The current kernel methodology expects that tegra_cpu_suspend
is actually the last function in the entire suspend sequence.
In order to achieve this, the code needs to be remodelled a
bit so that we actually execute native cpu_suspend at the end
of the suspend sequence. This allows us to leverage all the
cpu_suspend code developed by ARM in the upstream kernels.
Bug 934368
Change-Id: I94172d7adaa54c10043c479a57b270925d85a16b
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-on: http://git-master/r/84481
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle-t3.c')
-rw-r--r-- | arch/arm/mach-tegra/cpuidle-t3.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/cpuidle-t3.c b/arch/arm/mach-tegra/cpuidle-t3.c index c6a50a542d8c..9a19a8a4260c 100644 --- a/arch/arm/mach-tegra/cpuidle-t3.c +++ b/arch/arm/mach-tegra/cpuidle-t3.c @@ -43,6 +43,7 @@ #include <asm/cpu_pm.h> #include <asm/hardware/gic.h> #include <asm/localtimer.h> +#include <asm/suspend.h> #include <mach/iomap.h> #include <mach/irqs.h> @@ -377,7 +378,7 @@ static void tegra3_idle_enter_lp2_cpu_n(struct cpuidle_device *dev, tegra_cpu_wake_by_time[dev->cpu] = ktime_to_us(entry_time) + request; smp_wmb(); - tegra3_sleep_cpu_secondary(PLAT_PHYS_OFFSET - PAGE_OFFSET); + cpu_suspend(0, tegra3_sleep_cpu_secondary_finish); tegra_cpu_wake_by_time[dev->cpu] = LLONG_MAX; |