summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/timer.c
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2011-03-28 17:49:12 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:34:20 -0800
commitd41d0c96364bb0d1edf533f4bd581b9d6e166ee0 (patch)
tree7258a3e244bcf0c57d90589da65c7c150d734971 /arch/arm/mach-tegra/timer.c
parent508a1e902410242c9414983ac2a1b2517b524ce6 (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/arm/mach-tegra/timer.c')
-rw-r--r--arch/arm/mach-tegra/timer.c20
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