rtc-sh: act on rtc_wkalrm.enabled when setting an alarm
PATCH 1/1 rtc-sh: act on rtc_wkalrm.enabled when setting an alarm
This fixes the SH rtc driver correctly act on the "enabled" flag when setting an alarm.
Signed-off-by Jamie Lenehan <[email protected]>
drivers/rtc/rtc-sh.c +7 -5
@@ -492,10 +492,10 @@ static int sh_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *wkalrm)spin_lock_irq (&rtc->lock); -/* disable alarm interrupt and clear flag */ +/* disable alarm interrupt and clear the alarm flag */ rcr1 =readb (rtc->regbase +RCR1 ); - rcr1 &= ~RCR1_AF ; -writeb (rcr1 & ~RCR1_AIE , rtc->regbase +RCR1 ); + rcr1 &= ~(RCR1_AF |RCR1_AIE ); +writeb (rcr1, rtc->regbase +RCR1 ); rtc->rearm_aie =0 ;
@@ -510,8 +510,10 @@ static int sh_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *wkalrm) mon +=1 ;sh_rtc_write_alarm_value (rtc, mon,RMONAR ); -/* Restore interrupt activation status */ -writeb (rcr1, rtc->regbase +RCR1 ); +if (wkalrm->enabled) { + rcr1 |=RCR1_AIE ; +writeb (rcr1, rtc->regbase +RCR1 ); + }spin_unlock_irq (&rtc->lock);
Signature · 1 line
Jamie Lenehan <[email protected]>