Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
[firefly-linux-kernel-4.4.55.git] / drivers / rtc / rtc-rc5t583.c
index eb3194d664a8b7c03b378701a9840e3024bc6ad8..8eabcf51b35a05f21f0f43abe9bd563e7f5b5588 100644 (file)
@@ -256,7 +256,7 @@ static int rc5t583_rtc_probe(struct platform_device *pdev)
        }
        device_init_wakeup(&pdev->dev, 1);
 
-       ricoh_rtc->rtc = rtc_device_register(pdev->name, &pdev->dev,
+       ricoh_rtc->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
                &rc5t583_rtc_ops, THIS_MODULE);
        if (IS_ERR(ricoh_rtc->rtc)) {
                ret = PTR_ERR(ricoh_rtc->rtc);
@@ -276,13 +276,10 @@ static int rc5t583_rtc_remove(struct platform_device *pdev)
        struct rc5t583_rtc *rc5t583_rtc = dev_get_drvdata(&pdev->dev);
 
        rc5t583_rtc_alarm_irq_enable(&rc5t583_rtc->rtc->dev, 0);
-
-       rtc_device_unregister(rc5t583_rtc->rtc);
        return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
-
 static int rc5t583_rtc_suspend(struct device *dev)
 {
        struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
@@ -304,24 +301,18 @@ static int rc5t583_rtc_resume(struct device *dev)
        return regmap_write(rc5t583->regmap, RC5T583_RTC_CTL1,
                rc5t583_rtc->irqen);
 }
-
-static const struct dev_pm_ops rc5t583_rtc_pm_ops = {
-       .suspend        = rc5t583_rtc_suspend,
-       .resume         = rc5t583_rtc_resume,
-};
-
-#define DEV_PM_OPS     (&rc5t583_rtc_pm_ops)
-#else
-#define DEV_PM_OPS     NULL
 #endif
 
+static SIMPLE_DEV_PM_OPS(rc5t583_rtc_pm_ops, rc5t583_rtc_suspend,
+                       rc5t583_rtc_resume);
+
 static struct platform_driver rc5t583_rtc_driver = {
        .probe          = rc5t583_rtc_probe,
        .remove         = rc5t583_rtc_remove,
        .driver         = {
                .owner  = THIS_MODULE,
                .name   = "rtc-rc5t583",
-               .pm     = DEV_PM_OPS,
+               .pm     = &rc5t583_rtc_pm_ops,
        },
 };