diff options
Diffstat (limited to 'arch/arm/kernel/time.c')
| -rw-r--r-- | arch/arm/kernel/time.c | 35 | 
1 files changed, 12 insertions, 23 deletions
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index 1ff46cabc7e..cb634c3e28e 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c @@ -21,7 +21,7 @@  #include <linux/timex.h>  #include <linux/errno.h>  #include <linux/profile.h> -#include <linux/sysdev.h> +#include <linux/syscore_ops.h>  #include <linux/timer.h>  #include <linux/irq.h> @@ -115,48 +115,37 @@ void timer_tick(void)  #endif  #if defined(CONFIG_PM) && !defined(CONFIG_GENERIC_CLOCKEVENTS) -static int timer_suspend(struct sys_device *dev, pm_message_t state) +static int timer_suspend(void)  { -	struct sys_timer *timer = container_of(dev, struct sys_timer, dev); - -	if (timer->suspend != NULL) -		timer->suspend(); +	if (system_timer->suspend) +		system_timer->suspend();  	return 0;  } -static int timer_resume(struct sys_device *dev) +static void timer_resume(void)  { -	struct sys_timer *timer = container_of(dev, struct sys_timer, dev); - -	if (timer->resume != NULL) -		timer->resume(); - -	return 0; +	if (system_timer->resume) +		system_timer->resume();  }  #else  #define timer_suspend NULL  #define timer_resume NULL  #endif -static struct sysdev_class timer_sysclass = { -	.name		= "timer", +static struct syscore_ops timer_syscore_ops = {  	.suspend	= timer_suspend,  	.resume		= timer_resume,  }; -static int __init timer_init_sysfs(void) +static int __init timer_init_syscore_ops(void)  { -	int ret = sysdev_class_register(&timer_sysclass); -	if (ret == 0) { -		system_timer->dev.cls = &timer_sysclass; -		ret = sysdev_register(&system_timer->dev); -	} +	register_syscore_ops(&timer_syscore_ops); -	return ret; +	return 0;  } -device_initcall(timer_init_sysfs); +device_initcall(timer_init_syscore_ops);  void __init time_init(void)  {  |