diff options
author | Shuah Khan <shuah.kh@samsung.com> | 2013-07-03 18:07:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 19:08:00 -0400 |
commit | 92e7f04a7fcc9e7f5955f3337e26ca4ac2ae387b (patch) | |
tree | 227ac49d4bb7b75ed0f4aade2ea836fcb50cf231 /drivers/rtc | |
parent | 4c5591c1eee54b7775ea63635ae310a29f0207bb (diff) |
drivers/rtc/class: convert from Legacy pm ops to dev_pm_ops
Convert drivers/rtc/class to use dev_pm_ops for power management and
remove Legacy PM ops hooks. With this change, rtc class registers
suspend/resume callbacks via class->pm (dev_pm_ops) instead of Legacy
class->suspend/resume. When __device_suspend() runs call-backs, it will
find class->pm ops for the rtc class.
Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Cc: Shuah Khan <shuahkhan@gmail.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/class.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index 66385402d20e..02426812bebc 100644 --- a/drivers/rtc/class.c +++ b/drivers/rtc/class.c | |||
@@ -38,7 +38,7 @@ static void rtc_device_release(struct device *dev) | |||
38 | int rtc_hctosys_ret = -ENODEV; | 38 | int rtc_hctosys_ret = -ENODEV; |
39 | #endif | 39 | #endif |
40 | 40 | ||
41 | #if defined(CONFIG_PM) && defined(CONFIG_RTC_HCTOSYS_DEVICE) | 41 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_RTC_HCTOSYS_DEVICE) |
42 | /* | 42 | /* |
43 | * On suspend(), measure the delta between one RTC and the | 43 | * On suspend(), measure the delta between one RTC and the |
44 | * system's wall clock; restore it on resume(). | 44 | * system's wall clock; restore it on resume(). |
@@ -47,7 +47,7 @@ int rtc_hctosys_ret = -ENODEV; | |||
47 | static struct timespec old_rtc, old_system, old_delta; | 47 | static struct timespec old_rtc, old_system, old_delta; |
48 | 48 | ||
49 | 49 | ||
50 | static int rtc_suspend(struct device *dev, pm_message_t mesg) | 50 | static int rtc_suspend(struct device *dev) |
51 | { | 51 | { |
52 | struct rtc_device *rtc = to_rtc_device(dev); | 52 | struct rtc_device *rtc = to_rtc_device(dev); |
53 | struct rtc_time tm; | 53 | struct rtc_time tm; |
@@ -135,9 +135,10 @@ static int rtc_resume(struct device *dev) | |||
135 | return 0; | 135 | return 0; |
136 | } | 136 | } |
137 | 137 | ||
138 | static SIMPLE_DEV_PM_OPS(rtc_class_dev_pm_ops, rtc_suspend, rtc_resume); | ||
139 | #define RTC_CLASS_DEV_PM_OPS (&rtc_class_dev_pm_ops) | ||
138 | #else | 140 | #else |
139 | #define rtc_suspend NULL | 141 | #define RTC_CLASS_DEV_PM_OPS NULL |
140 | #define rtc_resume NULL | ||
141 | #endif | 142 | #endif |
142 | 143 | ||
143 | 144 | ||
@@ -336,8 +337,7 @@ static int __init rtc_init(void) | |||
336 | pr_err("couldn't create class\n"); | 337 | pr_err("couldn't create class\n"); |
337 | return PTR_ERR(rtc_class); | 338 | return PTR_ERR(rtc_class); |
338 | } | 339 | } |
339 | rtc_class->suspend = rtc_suspend; | 340 | rtc_class->pm = RTC_CLASS_DEV_PM_OPS; |
340 | rtc_class->resume = rtc_resume; | ||
341 | rtc_dev_init(); | 341 | rtc_dev_init(); |
342 | rtc_sysfs_init(rtc_class); | 342 | rtc_sysfs_init(rtc_class); |
343 | return 0; | 343 | return 0; |