diff options
author | Colin Cross <ccross@android.com> | 2011-03-28 17:49:12 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:34:20 -0800 |
commit | d41d0c96364bb0d1edf533f4bd581b9d6e166ee0 (patch) | |
tree | 7258a3e244bcf0c57d90589da65c7c150d734971 /arch | |
parent | 508a1e902410242c9414983ac2a1b2517b524ce6 (diff) |
ARM: tegra: timer: Convert timer suspend/resume to syscore
Signed-off-by: Colin Cross <ccross@android.com>
Change-Id: I914e2836b3ab36218658afc77751a7b394f62400
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/timer.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/timer.c b/arch/arm/mach-tegra/timer.c index 2935c337ba6d..cb83ca8a7d37 100644 --- a/arch/arm/mach-tegra/timer.c +++ b/arch/arm/mach-tegra/timer.c @@ -27,6 +27,7 @@ #include <linux/clocksource.h> #include <linux/clk.h> #include <linux/io.h> +#include <linux/syscore_ops.h> #include <asm/mach/time.h> #include <asm/localtimer.h> @@ -249,13 +250,28 @@ struct sys_timer tegra_timer = { #ifdef CONFIG_PM static u32 usec_config; -void tegra_timer_suspend(void) +static int tegra_timer_suspend(void) { usec_config = timer_readl(TIMERUS_USEC_CFG); + + return 0; } -void tegra_timer_resume(void) +static void tegra_timer_resume(void) { timer_writel(usec_config, TIMERUS_USEC_CFG); } + +static struct syscore_ops tegra_timer_syscore_ops = { + .suspend = tegra_timer_suspend, + .resume = tegra_timer_resume, +}; + +static int tegra_timer_syscore_init(void) +{ + register_syscore_ops(&tegra_timer_syscore_ops); + + return 0; +} +subsys_initcall(tegra_timer_syscore_init); #endif |