summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/pm.c
diff options
context:
space:
mode:
authorYudong Tan <ytan@nvidia.com>2011-08-18 15:29:08 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:48:40 -0800
commitb1a26f8631e7376d3b53f616c207c43d57ab1ef8 (patch)
treee26cde8a4254215c90bfeefeff809f59b7895d88 /arch/arm/mach-tegra/pm.c
parent1fa3f1740c35677b64a0d3a61057751eb1966440 (diff)
ARM: tegra: power: Call cluster_switch_prolog/epilog for LP1
cluster_switch_prolog is needed to set up car/flow controller registers for LP1 entry. epilog is needed to clean up some flags in flow controller after LP1 exit. Bug 862502 Change-Id: Ib9eeac6fc541cfa644d782071dbd4187255404d8 Reviewed-on: http://git-master/r/47585 Reviewed-by: Daniel Willemsen <dwillemsen@nvidia.com> Tested-by: Daniel Willemsen <dwillemsen@nvidia.com> Rebase-Id: R2c72673ba1b7f04ffa1b760ff54aaf73cf23f09e
Diffstat (limited to 'arch/arm/mach-tegra/pm.c')
-rw-r--r--arch/arm/mach-tegra/pm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/pm.c b/arch/arm/mach-tegra/pm.c
index 9211671984b0..ab00f9b6f78d 100644
--- a/arch/arm/mach-tegra/pm.c
+++ b/arch/arm/mach-tegra/pm.c
@@ -763,6 +763,9 @@ int tegra_suspend_dram(enum tegra_suspend_mode mode, unsigned int flags)
tegra_pm_set(mode);
+ if (flags & TEGRA_POWER_CLUSTER_MASK)
+ tegra_cluster_switch_prolog(flags);
+
if (pdata && pdata->board_suspend)
pdata->board_suspend(mode, TEGRA_SUSPEND_BEFORE_CPU);
@@ -810,6 +813,9 @@ int tegra_suspend_dram(enum tegra_suspend_mode mode, unsigned int flags)
tegra_common_resume();
+ if (flags & TEGRA_POWER_CLUSTER_MASK)
+ tegra_cluster_switch_epilog(mode);
+
pr_info("Exited suspend state %s\n", lp_state[mode]);
return 0;