rtc: pcf50633: consider alrm->enable in pcf50633_rtc_set_alarm
authorWerner Almesberger <[email protected]>
Wed, 11 Nov 2009 22:26:40 +0000 (14:26 -0800)
committerLinus Torvalds <[email protected]>
Thu, 12 Nov 2009 15:25:57 +0000 (07:25 -0800)
According to Documentation/rtc.txt, RTC_WKALM_SET sets the alarm time and
enables/disables the alarm.  We implement RTC_WKALM_SET through
pcf50633_rtc_set_alarm.  The enabling/disabling part was missing.

Signed-off-by: Werner Almesberger <[email protected]>
Reported-by: Michael 'Mickey' Lauer <[email protected]>
Signed-off-by: Paul Fertser <[email protected]>
Cc: Paul Gortmaker <[email protected]>
Cc: Balaji Rao <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
drivers/rtc/rtc-pcf50633.c

index 77b40ddd66e6e9bb2b1e1cb03caf1b7ae680370a..33a10c47260e8ff5d1818d53e5b59933150f7133 100644 (file)
@@ -245,8 +245,9 @@ static int pcf50633_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
        ret = pcf50633_write_block(rtc->pcf, PCF50633_REG_RTCSCA,
                                PCF50633_TI_EXTENT, &pcf_tm.time[0]);
 
-       if (!alarm_masked)
+       if (!alarm_masked || alrm->enabled)
                pcf50633_irq_unmask(rtc->pcf, PCF50633_IRQ_ALARM);
+       rtc->alarm_enabled = alrm->enabled;
 
        return ret;
 }