ubi: Fix race condition between ubi volume creation and udev
[pandora-kernel.git] / drivers / rtc / rtc-pcf50633.c
index f90c574..0c42389 100644 (file)
@@ -58,7 +58,6 @@ struct pcf50633_time {
 
 struct pcf50633_rtc {
        int alarm_enabled;
-       int second_enabled;
        int alarm_pending;
 
        struct pcf50633 *pcf;
@@ -143,7 +142,7 @@ static int pcf50633_rtc_set_time(struct device *dev, struct rtc_time *tm)
 {
        struct pcf50633_rtc *rtc;
        struct pcf50633_time pcf_tm;
-       int second_masked, alarm_masked, ret = 0;
+       int alarm_masked, ret = 0;
 
        rtc = dev_get_drvdata(dev);
 
@@ -162,11 +161,8 @@ static int pcf50633_rtc_set_time(struct device *dev, struct rtc_time *tm)
                pcf_tm.time[PCF50633_TI_SEC]);
 
 
-       second_masked = pcf50633_irq_mask_get(rtc->pcf, PCF50633_IRQ_SECOND);
        alarm_masked = pcf50633_irq_mask_get(rtc->pcf, PCF50633_IRQ_ALARM);
 
-       if (!second_masked)
-               pcf50633_irq_mask(rtc->pcf, PCF50633_IRQ_SECOND);
        if (!alarm_masked)
                pcf50633_irq_mask(rtc->pcf, PCF50633_IRQ_ALARM);
 
@@ -175,8 +171,6 @@ static int pcf50633_rtc_set_time(struct device *dev, struct rtc_time *tm)
                                             PCF50633_TI_EXTENT,
                                             &pcf_tm.time[0]);
 
-       if (!second_masked)
-               pcf50633_irq_unmask(rtc->pcf, PCF50633_IRQ_SECOND);
        if (!alarm_masked)
                pcf50633_irq_unmask(rtc->pcf, PCF50633_IRQ_ALARM);
 
@@ -250,15 +244,8 @@ static void pcf50633_rtc_irq(int irq, void *data)
 {
        struct pcf50633_rtc *rtc = data;
 
-       switch (irq) {
-       case PCF50633_IRQ_ALARM:
-               rtc_update_irq(rtc->rtc_dev, 1, RTC_AF | RTC_IRQF);
-               rtc->alarm_pending = 1;
-               break;
-       case PCF50633_IRQ_SECOND:
-               rtc_update_irq(rtc->rtc_dev, 1, RTC_UF | RTC_IRQF);
-               break;
-       }
+       rtc_update_irq(rtc->rtc_dev, 1, RTC_AF | RTC_IRQF);
+       rtc->alarm_pending = 1;
 }
 
 static int __devinit pcf50633_rtc_probe(struct platform_device *pdev)
@@ -282,9 +269,6 @@ static int __devinit pcf50633_rtc_probe(struct platform_device *pdev)
 
        pcf50633_register_irq(rtc->pcf, PCF50633_IRQ_ALARM,
                                        pcf50633_rtc_irq, rtc);
-       pcf50633_register_irq(rtc->pcf, PCF50633_IRQ_SECOND,
-                                       pcf50633_rtc_irq, rtc);
-
        return 0;
 }
 
@@ -295,7 +279,6 @@ static int __devexit pcf50633_rtc_remove(struct platform_device *pdev)
        rtc = platform_get_drvdata(pdev);
 
        pcf50633_free_irq(rtc->pcf, PCF50633_IRQ_ALARM);
-       pcf50633_free_irq(rtc->pcf, PCF50633_IRQ_SECOND);
 
        rtc_device_unregister(rtc->rtc_dev);
        kfree(rtc);