rtc: sirfsoc: convert to devm_rtc_allocate_device
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 5 Mar 2020 16:04:50 +0000 (17:04 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 16 Mar 2020 10:12:08 +0000 (11:12 +0100)
This allows further improvement of the driver. Also remove the unnecessary
error string as the core will already display error messages.

Link: https://lore.kernel.org/r/20200305160452.27808-1-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-sirfsoc.c

index a2c9c55..b2e7259 100644 (file)
@@ -341,28 +341,21 @@ static int sirfsoc_rtc_probe(struct platform_device *pdev)
        rtcdrv->overflow_rtc =
                sirfsoc_rtc_readl(rtcdrv, RTC_SW_VALUE);
 
-       rtcdrv->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
-                       &sirfsoc_rtc_ops, THIS_MODULE);
-       if (IS_ERR(rtcdrv->rtc)) {
-               err = PTR_ERR(rtcdrv->rtc);
-               dev_err(&pdev->dev, "can't register RTC device\n");
-               return err;
-       }
+       rtcdrv->rtc = devm_rtc_allocate_device(&pdev->dev);
+       if (IS_ERR(rtcdrv->rtc))
+               return PTR_ERR(rtcdrv->rtc);
+
+       rtcdrv->rtc->ops = &sirfsoc_rtc_ops;
 
        rtcdrv->irq = platform_get_irq(pdev, 0);
-       err = devm_request_irq(
-                       &pdev->dev,
-                       rtcdrv->irq,
-                       sirfsoc_rtc_irq_handler,
-                       IRQF_SHARED,
-                       pdev->name,
-                       rtcdrv);
+       err = devm_request_irq(&pdev->dev, rtcdrv->irq, sirfsoc_rtc_irq_handler,
+                              IRQF_SHARED, pdev->name, rtcdrv);
        if (err) {
                dev_err(&pdev->dev, "Unable to register for the SiRF SOC RTC IRQ\n");
                return err;
        }
 
-       return 0;
+       return rtc_register_device(rtcdrv->rtc);
 }
 
 #ifdef CONFIG_PM_SLEEP