From 358efb10094d4c9d8bfc85bb8803e8836b64a034 Mon Sep 17 00:00:00 2001 From: Jamie Lenehan Date: Mon, 22 Jan 2007 20:40:41 -0800 Subject: [PATCH] --- yaml --- r: 45718 b: refs/heads/master c: 15c945c3d0913d73a7d57d7a0a3c4e2902598cc6 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/rtc/rtc-sh.c | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index feb1fb20020f..b3d3615e7907 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fc3dffe12148b9612870eb21b24f2aecefa9ea24 +refs/heads/master: 15c945c3d0913d73a7d57d7a0a3c4e2902598cc6 diff --git a/trunk/drivers/rtc/rtc-sh.c b/trunk/drivers/rtc/rtc-sh.c index e9e0934380b8..198b9f22fbff 100644 --- a/trunk/drivers/rtc/rtc-sh.c +++ b/trunk/drivers/rtc/rtc-sh.c @@ -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);