diff options
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 60552e22f22..73defd00c3e 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 -};  |