summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/suspend.c
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2010-10-19 16:08:48 -0700
committerColin Cross <ccross@android.com>2010-10-20 14:30:17 -0700
commit25d5d351ec5212ca4647558a5d363abe0c740f90 (patch)
treed1e144d18271156d0e8322e3bf59c0e87bca5d3d /arch/arm/mach-tegra/suspend.c
parent0f712aa80841eb5c1a86dfabc548fdb240392b5d (diff)
[ARM] tegra: suspend: Save protected aperture across LP0
Change-Id: Iab66c566957cfbac8ddab615ec92e57c2164ab68 Signed-off-by: Colin Cross <ccross@android.com>
Diffstat (limited to 'arch/arm/mach-tegra/suspend.c')
-rw-r--r--arch/arm/mach-tegra/suspend.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/suspend.c b/arch/arm/mach-tegra/suspend.c
index c7be121ea8d1..3b64aa56b063 100644
--- a/arch/arm/mach-tegra/suspend.c
+++ b/arch/arm/mach-tegra/suspend.c
@@ -461,13 +461,14 @@ static void tegra_debug_uart_resume(void)
#define MC_SECURITY_START 0x6c
#define MC_SECURITY_SIZE 0x70
+#define MC_SECURITY_CFG2 0x7c
static int tegra_suspend_enter(suspend_state_t state)
{
struct irq_desc *desc;
void __iomem *mc = IO_ADDRESS(TEGRA_MC_BASE);
unsigned long flags;
- u32 mc_data[2];
+ u32 mc_data[3] = {0, 0, 0};
int irq;
bool do_lp0 = (current_suspend_mode == TEGRA_SUSPEND_LP0);
bool do_lp2 = (current_suspend_mode == TEGRA_SUSPEND_LP2);
@@ -494,6 +495,7 @@ static int tegra_suspend_enter(suspend_state_t state)
mc_data[0] = readl(mc + MC_SECURITY_START);
mc_data[1] = readl(mc + MC_SECURITY_SIZE);
+ mc_data[2] = readl(mc + MC_SECURITY_CFG2);
}
for_each_irq_desc(irq, desc) {
@@ -521,6 +523,7 @@ static int tegra_suspend_enter(suspend_state_t state)
if (do_lp0) {
writel(mc_data[0], mc + MC_SECURITY_START);
writel(mc_data[1], mc + MC_SECURITY_SIZE);
+ writel(mc_data[2], mc + MC_SECURITY_CFG2);
tegra_clk_resume();
tegra_gpio_resume();