rtc-at91rm9200: add shadow interrupt mask
[cascardo/linux.git] / drivers / rtc / rtc-tps65910.c
index 8bd8115..a9caf04 100644 (file)
@@ -263,7 +263,7 @@ static int tps65910_rtc_probe(struct platform_device *pdev)
        if (irq <= 0) {
                dev_warn(&pdev->dev, "Wake up is not possible as irq = %d\n",
                        irq);
-               return ret;
+               return -ENXIO;
        }
 
        ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
@@ -276,7 +276,7 @@ static int tps65910_rtc_probe(struct platform_device *pdev)
        tps_rtc->irq = irq;
        device_set_wakeup_capable(&pdev->dev, 1);
 
-       tps_rtc->rtc = rtc_device_register(pdev->name, &pdev->dev,
+       tps_rtc->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
                &tps65910_rtc_ops, THIS_MODULE);
        if (IS_ERR(tps_rtc->rtc)) {
                ret = PTR_ERR(tps_rtc->rtc);
@@ -295,12 +295,8 @@ static int tps65910_rtc_probe(struct platform_device *pdev)
  */
 static int tps65910_rtc_remove(struct platform_device *pdev)
 {
-       /* leave rtc running, but disable irqs */
-       struct tps65910_rtc *tps_rtc = platform_get_drvdata(pdev);
-
        tps65910_rtc_alarm_irq_enable(&pdev->dev, 0);
 
-       rtc_device_unregister(tps_rtc->rtc);
        return 0;
 }
 
@@ -324,9 +320,8 @@ static int tps65910_rtc_resume(struct device *dev)
 }
 #endif
 
-static const struct dev_pm_ops tps65910_rtc_pm_ops = {
-       SET_SYSTEM_SLEEP_PM_OPS(tps65910_rtc_suspend, tps65910_rtc_resume)
-};
+static SIMPLE_DEV_PM_OPS(tps65910_rtc_pm_ops, tps65910_rtc_suspend,
+                       tps65910_rtc_resume);
 
 static struct platform_driver tps65910_rtc_driver = {
        .probe          = tps65910_rtc_probe,