]> err.no Git - linux-2.6/blobdiff - drivers/rtc/rtc-ds1553.c
pasemi: hardware rng driver
[linux-2.6] / drivers / rtc / rtc-ds1553.c
index 78552e6e76aa252d8065ec93cc95abde426e92dd..afa64c7fa2e2d67152b50fe75b011e7cf2c8a6f2 100644 (file)
@@ -203,7 +203,7 @@ static irqreturn_t ds1553_rtc_interrupt(int irq, void *dev_id)
                events |= RTC_UF;
        else
                events |= RTC_AF;
-       rtc_update_irq(&pdata->rtc->class_dev, 1, events);
+       rtc_update_irq(pdata->rtc, 1, events);
        return IRQ_HANDLED;
 }
 
@@ -297,7 +297,7 @@ static struct bin_attribute ds1553_nvram_attr = {
        .write = ds1553_nvram_write,
 };
 
-static int __init ds1553_rtc_probe(struct platform_device *pdev)
+static int __devinit ds1553_rtc_probe(struct platform_device *pdev)
 {
        struct rtc_device *rtc;
        struct resource *res;
@@ -340,7 +340,8 @@ static int __init ds1553_rtc_probe(struct platform_device *pdev)
 
        if (pdata->irq >= 0) {
                writeb(0, ioaddr + RTC_INTERRUPTS);
-               if (request_irq(pdata->irq, ds1553_rtc_interrupt, IRQF_SHARED,
+               if (request_irq(pdata->irq, ds1553_rtc_interrupt,
+                               IRQF_DISABLED | IRQF_SHARED,
                                pdev->name, pdev) < 0) {
                        dev_warn(&pdev->dev, "interrupt not available.\n");
                        pdata->irq = -1;