diff options
author | Arnd Bergmann <arnd@arndb.de> | 2013-02-28 21:54:15 +0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2013-02-28 21:54:15 +0400 |
commit | 7266d48fca8ee2a15d15222c41f887e10db54c5a (patch) | |
tree | 775404bcbf8ce146ccaba905e841a3621ae7ce80 /arch/arm/plat-samsung/time.c | |
parent | 168268a225d24da3768a88c1029fb3014b0837ca (diff) | |
parent | 90cf214d6a549bf482e3c5751ee256cc885b96ea (diff) | |
download | linux-7266d48fca8ee2a15d15222c41f887e10db54c5a.tar.xz |
Merge branch 'timer/cleanup' into late/mvebu2
Basing the mvebu patches on top of the timer cleanup
avoids some nasty merges.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/plat-samsung/time.c')
-rw-r--r-- | arch/arm/plat-samsung/time.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/arch/arm/plat-samsung/time.c b/arch/arm/plat-samsung/time.c index 60552e22f22e..73defd00c3e4 100644 --- a/arch/arm/plat-samsung/time.c +++ b/arch/arm/plat-samsung/time.c @@ -27,6 +27,7 @@ #include <linux/clk.h> #include <linux/io.h> #include <linux/platform_device.h> +#include <linux/syscore_ops.h> #include <asm/mach-types.h> @@ -95,7 +96,7 @@ static inline unsigned long timer_ticks_to_usec(unsigned long ticks) * IRQs are disabled before entering here from do_gettimeofday() */ -static unsigned long s3c2410_gettimeoffset (void) +static u32 s3c2410_gettimeoffset(void) { unsigned long tdone; unsigned long tval; @@ -120,7 +121,7 @@ static unsigned long s3c2410_gettimeoffset (void) tdone += timer_startval; } - return timer_ticks_to_usec(tdone); + return timer_ticks_to_usec(tdone) * 1000; } @@ -271,15 +272,16 @@ static void __init s3c2410_timer_resources(void) clk_enable(tin); } -static void __init s3c2410_timer_init(void) +static struct syscore_ops s3c24xx_syscore_ops = { + .resume = s3c2410_timer_setup, +}; + +void __init s3c24xx_timer_init(void) { + arch_gettimeoffset = s3c2410_gettimeoffset; + s3c2410_timer_resources(); s3c2410_timer_setup(); setup_irq(IRQ_TIMER4, &s3c2410_timer_irq); + register_syscore_ops(&s3c24xx_syscore_ops); } - -struct sys_timer s3c24xx_timer = { - .init = s3c2410_timer_init, - .offset = s3c2410_gettimeoffset, - .resume = s3c2410_timer_setup -}; |