On 06/06/2013 08:28 PM, Jingoo Han wrote: > From: Shuah Khan <shuah...@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...@samsung.com> > Signed-off-by: Jingoo Han <jg1....@samsung.com> > Cc: Shuah Khan <shuahk...@gmail.com> > Cc: Alessandro Zummo <a.zu...@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...@samsung.com | (970) 672-0658 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/