rtc: fix driver data issues in several rtc drivers
[platform/kernel/linux-exynos.git] / drivers / rtc / rtc-at32ap700x.c
index e1ec33e..8825695 100644 (file)
@@ -256,6 +256,8 @@ static int __init at32_rtc_probe(struct platform_device *pdev)
                goto out_iounmap;
        }
 
+       platform_set_drvdata(pdev, rtc);
+
        rtc->rtc = rtc_device_register(pdev->name, &pdev->dev,
                                &at32_rtc_ops, THIS_MODULE);
        if (IS_ERR(rtc->rtc)) {
@@ -264,7 +266,6 @@ static int __init at32_rtc_probe(struct platform_device *pdev)
                goto out_free_irq;
        }
 
-       platform_set_drvdata(pdev, rtc);
        device_init_wakeup(&pdev->dev, 1);
 
        dev_info(&pdev->dev, "Atmel RTC for AT32AP700x at %08lx irq %ld\n",
@@ -273,6 +274,7 @@ static int __init at32_rtc_probe(struct platform_device *pdev)
        return 0;
 
 out_free_irq:
+       platform_set_drvdata(pdev, NULL);
        free_irq(irq, rtc);
 out_iounmap:
        iounmap(rtc->regs);