drivers/rtc/rtc-pxa.c: fix alarm can't wake up system issue
authorLeo Song <liangs@marvell.com>
Fri, 22 Feb 2013 00:44:24 +0000 (16:44 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 22 Feb 2013 01:22:27 +0000 (17:22 -0800)
Fix alarm can't wake up system issue

Signed-off-by: Leo Song <liangs@marvell.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-pxa.c

index 2695e556f1410f0ed3cc01e92fd86f613754e81d..dbc24e948fe88bfc99c761978fe30fbdb68131ce 100644 (file)
@@ -309,8 +309,6 @@ static int pxa_rtc_proc(struct device *dev, struct seq_file *seq)
 }
 
 static const struct rtc_class_ops pxa_rtc_ops = {
-       .open = pxa_rtc_open,
-       .release = pxa_rtc_release,
        .read_time = pxa_rtc_read_time,
        .set_time = pxa_rtc_set_time,
        .read_alarm = pxa_rtc_read_alarm,
@@ -350,7 +348,7 @@ static int __init pxa_rtc_probe(struct platform_device *pdev)
                dev_err(dev, "No alarm IRQ resource defined\n");
                goto err_ress;
        }
-
+       pxa_rtc_open(dev);
        ret = -ENOMEM;
        pxa_rtc->base = ioremap(pxa_rtc->ress->start,
                                resource_size(pxa_rtc->ress));
@@ -396,6 +394,9 @@ static int __exit pxa_rtc_remove(struct platform_device *pdev)
 {
        struct pxa_rtc *pxa_rtc = platform_get_drvdata(pdev);
 
+       struct device *dev = &pdev->dev;
+       pxa_rtc_release(dev);
+
        rtc_device_unregister(pxa_rtc->rtc);
 
        spin_lock_irq(&pxa_rtc->lock);