Merge remote-tracking branch 'lsk/v3.10/topic/arm64-cpuidle' into linux-linaro-lsk
[firefly-linux-kernel-4.4.55.git] / drivers / rtc / rtc-imxdi.c
index 82aad695979e7dc1078a5ea42d89f0ea9b0449cd..d3a8c8e255de9213716d6cca17c56daea2a5b156 100644 (file)
@@ -369,7 +369,7 @@ static void dryice_work(struct work_struct *work)
 /*
  * probe for dryice rtc device
  */
-static int dryice_rtc_probe(struct platform_device *pdev)
+static int __init dryice_rtc_probe(struct platform_device *pdev)
 {
        struct resource *res;
        struct imxdi_dev *imxdi;
@@ -464,7 +464,7 @@ static int dryice_rtc_probe(struct platform_device *pdev)
        }
 
        platform_set_drvdata(pdev, imxdi);
-       imxdi->rtc = rtc_device_register(pdev->name, &pdev->dev,
+       imxdi->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
                                  &dryice_rtc_ops, THIS_MODULE);
        if (IS_ERR(imxdi->rtc)) {
                rc = PTR_ERR(imxdi->rtc);
@@ -479,7 +479,7 @@ err:
        return rc;
 }
 
-static int dryice_rtc_remove(struct platform_device *pdev)
+static int __exit dryice_rtc_remove(struct platform_device *pdev)
 {
        struct imxdi_dev *imxdi = platform_get_drvdata(pdev);
 
@@ -488,8 +488,6 @@ static int dryice_rtc_remove(struct platform_device *pdev)
        /* mask all interrupts */
        __raw_writel(0, imxdi->ioaddr + DIER);
 
-       rtc_device_unregister(imxdi->rtc);
-
        clk_disable_unprepare(imxdi->clk);
 
        return 0;
@@ -510,21 +508,10 @@ static struct platform_driver dryice_rtc_driver = {
                   .owner = THIS_MODULE,
                   .of_match_table = of_match_ptr(dryice_dt_ids),
                   },
-       .remove = dryice_rtc_remove,
+       .remove = __exit_p(dryice_rtc_remove),
 };
 
-static int __init dryice_rtc_init(void)
-{
-       return platform_driver_probe(&dryice_rtc_driver, dryice_rtc_probe);
-}
-
-static void __exit dryice_rtc_exit(void)
-{
-       platform_driver_unregister(&dryice_rtc_driver);
-}
-
-module_init(dryice_rtc_init);
-module_exit(dryice_rtc_exit);
+module_platform_driver_probe(dryice_rtc_driver, dryice_rtc_probe);
 
 MODULE_AUTHOR("Freescale Semiconductor, Inc.");
 MODULE_AUTHOR("Baruch Siach <baruch@tkos.co.il>");