Skip to content

Commit

Permalink
[PATCH] rtc-sh: act on rtc_wkalrm.enabled when setting an alarm
Browse files Browse the repository at this point in the history
This fixes the SH rtc driver correctly act on the "enabled" flag when
setting an alarm.

Signed-off-by: Jamie Lenehan <lenehan@twibble.org>
Cc: David Brownell <david-b@pacbell.net>
Cc: Alessandro Zummo <alessandro.zummo@towertech.it>
Cc: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Jamie Lenehan authored and Linus Torvalds committed Jan 23, 2007
1 parent fc3dffe commit 15c945c
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions drivers/rtc/rtc-sh.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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);

Expand Down

0 comments on commit 15c945c

Please sign in to comment.