|
@@ -14,7 +14,7 @@
|
|
|
#include <linux/init.h>
|
|
|
#include <linux/mm.h>
|
|
|
#include <linux/sched.h>
|
|
|
-#include <linux/sysdev.h>
|
|
|
+#include <linux/syscore_ops.h>
|
|
|
#include <linux/clocksource.h>
|
|
|
#include <linux/jiffies.h>
|
|
|
#include <linux/time.h>
|
|
@@ -597,13 +597,12 @@ static struct timespec timekeeping_suspend_time;
|
|
|
|
|
|
/**
|
|
|
* timekeeping_resume - Resumes the generic timekeeping subsystem.
|
|
|
- * @dev: unused
|
|
|
*
|
|
|
* This is for the generic clocksource timekeeping.
|
|
|
* xtime/wall_to_monotonic/jiffies/etc are
|
|
|
* still managed by arch specific suspend/resume code.
|
|
|
*/
|
|
|
-static int timekeeping_resume(struct sys_device *dev)
|
|
|
+static void timekeeping_resume(void)
|
|
|
{
|
|
|
unsigned long flags;
|
|
|
struct timespec ts;
|
|
@@ -632,11 +631,9 @@ static int timekeeping_resume(struct sys_device *dev)
|
|
|
|
|
|
/* Resume hrtimers */
|
|
|
hres_timers_resume();
|
|
|
-
|
|
|
- return 0;
|
|
|
}
|
|
|
|
|
|
-static int timekeeping_suspend(struct sys_device *dev, pm_message_t state)
|
|
|
+static int timekeeping_suspend(void)
|
|
|
{
|
|
|
unsigned long flags;
|
|
|
|
|
@@ -654,26 +651,18 @@ static int timekeeping_suspend(struct sys_device *dev, pm_message_t state)
|
|
|
}
|
|
|
|
|
|
/* sysfs resume/suspend bits for timekeeping */
|
|
|
-static struct sysdev_class timekeeping_sysclass = {
|
|
|
- .name = "timekeeping",
|
|
|
+static struct syscore_ops timekeeping_syscore_ops = {
|
|
|
.resume = timekeeping_resume,
|
|
|
.suspend = timekeeping_suspend,
|
|
|
};
|
|
|
|
|
|
-static struct sys_device device_timer = {
|
|
|
- .id = 0,
|
|
|
- .cls = &timekeeping_sysclass,
|
|
|
-};
|
|
|
-
|
|
|
-static int __init timekeeping_init_device(void)
|
|
|
+static int __init timekeeping_init_ops(void)
|
|
|
{
|
|
|
- int error = sysdev_class_register(&timekeeping_sysclass);
|
|
|
- if (!error)
|
|
|
- error = sysdev_register(&device_timer);
|
|
|
- return error;
|
|
|
+ register_syscore_ops(&timekeeping_syscore_ops);
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
-device_initcall(timekeeping_init_device);
|
|
|
+device_initcall(timekeeping_init_ops);
|
|
|
|
|
|
/*
|
|
|
* If the error is already larger, we look ahead even further
|