diff options
Diffstat (limited to 'arch/arm/mach-tegra/suspend.c')
-rw-r--r-- | arch/arm/mach-tegra/suspend.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/suspend.c b/arch/arm/mach-tegra/suspend.c index 7e581b198216..77c3c1c0fec0 100644 --- a/arch/arm/mach-tegra/suspend.c +++ b/arch/arm/mach-tegra/suspend.c @@ -701,8 +701,29 @@ static int tegra_suspend_enter(suspend_state_t state) return 0; } +/* + * Function pointers to optional board specific function + */ +void (*tegra_deep_sleep)(int); +EXPORT_SYMBOL(tegra_deep_sleep); + +static int tegra_suspend_prepare(void) +{ + if ((current_suspend_mode == TEGRA_SUSPEND_LP0) && tegra_deep_sleep) + tegra_deep_sleep(1); + return 0; +} + +static void tegra_suspend_finish(void) +{ + if ((current_suspend_mode == TEGRA_SUSPEND_LP0) && tegra_deep_sleep) + tegra_deep_sleep(0); +} + static struct platform_suspend_ops tegra_suspend_ops = { .valid = suspend_valid_only_mem, + .prepare = tegra_suspend_prepare, + .finish = tegra_suspend_finish, .begin = tegra_suspend_begin, .prepare_late = tegra_suspend_prepare_late, .wake = tegra_suspend_wake, |