Messages in this thread | | | From | Shuah Khan <> | Subject | Re: [PATCH V2] drivers/rtc/class: convert from Legacy pm ops to dev_pm_ops | Date | Mon, 10 Jun 2013 15:35:54 +0000 |
| |
On 06/06/2013 08:28 PM, Jingoo Han wrote: > From: Shuah Khan <shuah.kh@samsung.com> > > 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> > --- > Changes since v1: > - Added 'RTC_CLASS_DEV_PM_OPS' to fix buill errors. > - Replaced '#if defined(CONFIG_PM)' with '#if defined(CONFIG_PM_SLEEP)'. > > drivers/rtc/class.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c > index 6638540..0242681 100644 > --- a/drivers/rtc/class.c > +++ b/drivers/rtc/class.c > @@ -38,7 +38,7 @@ static void rtc_device_release(struct device *dev) > int rtc_hctosys_ret = -ENODEV; > #endif > > -#if defined(CONFIG_PM) && defined(CONFIG_RTC_HCTOSYS_DEVICE) > +#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_RTC_HCTOSYS_DEVICE) > /* > * On suspend(), measure the delta between one RTC and the > * system's wall clock; restore it on resume(). > @@ -47,7 +47,7 @@ int rtc_hctosys_ret = -ENODEV; > static struct timespec old_rtc, old_system, old_delta; > > > -static int rtc_suspend(struct device *dev, pm_message_t mesg) > +static int rtc_suspend(struct device *dev) > { > struct rtc_device *rtc = to_rtc_device(dev); > struct rtc_time tm; > @@ -135,9 +135,10 @@ static int rtc_resume(struct device *dev) > return 0; > } > > +static SIMPLE_DEV_PM_OPS(rtc_class_dev_pm_ops, rtc_suspend, rtc_resume); > +#define RTC_CLASS_DEV_PM_OPS (&rtc_class_dev_pm_ops) > #else > -#define rtc_suspend NULL > -#define rtc_resume NULL > +#define RTC_CLASS_DEV_PM_OPS NULL > #endif > > > @@ -336,8 +337,7 @@ static int __init rtc_init(void) > pr_err("couldn't create class\n"); > return PTR_ERR(rtc_class); > } > - rtc_class->suspend = rtc_suspend; > - rtc_class->resume = rtc_resume; > + rtc_class->pm = RTC_CLASS_DEV_PM_OPS; > rtc_dev_init(); > rtc_sysfs_init(rtc_class); > return 0; >
Looks good. Thanks for fixing the problem. My apologies for introducing the warnings. I had CONFIG_PM and CONFIG_PM_SLEEP both enabled and didn't see this warning. I will be careful with subsequent patches in this area.
-- Shuah
Shuah Khan, Linux Kernel Developer - Open Source Group Samsung Research America (Silicon Valley) shuah.kh@samsung.com | (970) 672-0658
| |