diff options
author | Scott Williams <scwilliams@nvidia.com> | 2011-07-19 15:19:42 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:46:49 -0800 |
commit | 0ebe761bd50b93a7593f5df374cf1c9b9be57a09 (patch) | |
tree | e67ca8f5a7cd5e7741def85081531d60898b4931 /arch/arm/mach-tegra/sleep-t2.S | |
parent | 08b30e31304a0fd8635631e692eaff5ce621c51e (diff) |
ARM: tegra: Fail when tegra2_cpu_reset is called by CPU 0
CPU 0 must be the last CPU to shutdown since it's the only one that can
perform CPU power gating or rail gating. Therefore, CPU 0 can reset CPU
1, but the reverse is not allowed.
Change-Id: I61296ee49d219a67c1fb864badc1170cd4684f8e
Signed-off-by: Scott Williams <scwilliams@nvidia.com>
DW: Split into logical changes
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>
Rebase-Id: R722033713d671fe702d9a7c0813993f9c7e6bd01
Diffstat (limited to 'arch/arm/mach-tegra/sleep-t2.S')
-rw-r--r-- | arch/arm/mach-tegra/sleep-t2.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/sleep-t2.S b/arch/arm/mach-tegra/sleep-t2.S index 0eb51210822a..0f9ac080683f 100644 --- a/arch/arm/mach-tegra/sleep-t2.S +++ b/arch/arm/mach-tegra/sleep-t2.S @@ -105,10 +105,14 @@ ENDPROC(tegra2_sleep_reset) * and puts the CPU in reset * can be called on the current cpu or another cpu * if called on the current cpu, does not return + * MUST NOT BE CALLED FOR CPU 0. * * corrupts r0-r3, r12 */ ENTRY(tegra2_cpu_reset) + cmp r0, #0 + moveq pc, lr @ must not be called for CPU 0 + mov32 r3, TEGRA_PMC_VIRT add r1, r3, #PMC_SCRATCH41 mov r12, #CPU_RESETTABLE |