summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/pm-t3.c
diff options
context:
space:
mode:
authorScott Williams <scwilliams@nvidia.com>2011-07-21 14:29:58 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:46:57 -0800
commitf68659188e7e7db84db6499813ea7a0f050d5d62 (patch)
tree08096f43960b637f7510aeaca71d82f6e135a252 /arch/arm/mach-tegra/pm-t3.c
parent4f363334677b0323dea4d5c3c13bdc090455de03 (diff)
ARM: tegra: power: Fix CPU complex suspend/resume
- Invoke cpu_pm_enter()/cpu_pm_exit() to save/restore the GIC processor interface registers for the last processor standing from the cluster control interface. - Disable the GIC processor interface on the last processor standing before shutting down the CPU complex so that wakeup interrupts get routed from the legacy interrupt controller to the flow controller. - For Tegra3 enable GIC pass-through mode to prevent WFI failures. Change-Id: Ia866b17bef47fc8e9e75d4e353394b2d1a09259c Signed-off-by: Scott Williams <scwilliams@nvidia.com> DW: Split into logical changes Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com> Rebase-Id: R249fb53a2622218a7128646d68d8a3552268b4f1
Diffstat (limited to 'arch/arm/mach-tegra/pm-t3.c')
-rw-r--r--arch/arm/mach-tegra/pm-t3.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/pm-t3.c b/arch/arm/mach-tegra/pm-t3.c
index 437a2774a3a5..5f869a124053 100644
--- a/arch/arm/mach-tegra/pm-t3.c
+++ b/arch/arm/mach-tegra/pm-t3.c
@@ -26,6 +26,8 @@
#include <mach/gpio.h>
#include <mach/iomap.h>
#include <mach/irqs.h>
+
+#include <asm/cpu_pm.h>
#include <asm/hardware/gic.h>
#include "clock.h"
@@ -310,8 +312,11 @@ int tegra_cluster_control(unsigned int us, unsigned int flags)
if (us)
tegra_lp2_set_trigger(0);
- } else
+ } else {
+ cpu_pm_enter();
tegra_idle_lp2_last(0, flags);
+ cpu_pm_exit();
+ }
local_irq_enable();
DEBUG_CLUSTER(("%s: %s\r\n", __func__, is_lp_cluster() ? "LP" : "G"));