diff options
Diffstat (limited to 'drivers/rtc/class.c')
| -rw-r--r-- | drivers/rtc/class.c | 21 | 
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index 921ee1827974..e31fa0ad127e 100644 --- a/drivers/rtc/class.c +++ b/drivers/rtc/class.c @@ -21,7 +21,6 @@  #include "rtc-core.h"  static DEFINE_IDA(rtc_ida); -struct class *rtc_class;  static void rtc_device_release(struct device *dev)  { @@ -199,6 +198,11 @@ static SIMPLE_DEV_PM_OPS(rtc_class_dev_pm_ops, rtc_suspend, rtc_resume);  #define RTC_CLASS_DEV_PM_OPS	NULL  #endif +const struct class rtc_class = { +	.name = "rtc", +	.pm = RTC_CLASS_DEV_PM_OPS, +}; +  /* Ensure the caller will set the id before releasing the device */  static struct rtc_device *rtc_allocate_device(void)  { @@ -220,7 +224,7 @@ static struct rtc_device *rtc_allocate_device(void)  	rtc->irq_freq = 1;  	rtc->max_user_freq = 64; -	rtc->dev.class = rtc_class; +	rtc->dev.class = &rtc_class;  	rtc->dev.groups = rtc_get_dev_attribute_groups();  	rtc->dev.release = rtc_device_release; @@ -475,13 +479,14 @@ EXPORT_SYMBOL_GPL(devm_rtc_device_register);  static int __init rtc_init(void)  { -	rtc_class = class_create("rtc"); -	if (IS_ERR(rtc_class)) { -		pr_err("couldn't create class\n"); -		return PTR_ERR(rtc_class); -	} -	rtc_class->pm = RTC_CLASS_DEV_PM_OPS; +	int err; + +	err = class_register(&rtc_class); +	if (err) +		return err; +  	rtc_dev_init(); +  	return 0;  }  subsys_initcall(rtc_init);  | 
