From 3264e2bedaf38a25cbf3028df93db7496fc866b5 Mon Sep 17 00:00:00 2001 From: Saeed Bishara Date: Tue, 22 Mar 2011 17:19:55 +0200 Subject: [PATCH] rtc dove: fix setting the year valid bit in the alarm's date. the year valid is 8 bits after the start of the year field, the previous code sets the wrong bit (7 + start of year offset). Signed-off-by: Saeed Bishara --- drivers/rtc/rtc-mv.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc-mv.c b/drivers/rtc/rtc-mv.c index daf7c5e..9b19ccf 100755 --- a/drivers/rtc/rtc-mv.c +++ b/drivers/rtc/rtc-mv.c @@ -30,6 +30,7 @@ #define RTC_ALARM_TIME_REG_OFFS 8 #define RTC_ALARM_DATE_REG_OFFS 0xc #define RTC_ALARM_VALID (1 << 7) +#define RTC_ALARM_YEAR_VALID (1 << 8) #define RTC_ALARM_INTERRUPT_MASK_REG_OFFS 0x10 #define RTC_ALARM_INTERRUPT_CASUE_REG_OFFS 0x14 @@ -161,8 +162,8 @@ static int mv_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) << RTC_MONTH_OFFS; if (alm->time.tm_year >= 0) - rtc_reg |= (RTC_ALARM_VALID | bin2bcd(alm->time.tm_year % 100)) - << RTC_YEAR_OFFS; + rtc_reg |= (RTC_ALARM_YEAR_VALID | + bin2bcd(alm->time.tm_year % 100)) << RTC_YEAR_OFFS; writel(rtc_reg, ioaddr + RTC_ALARM_DATE_REG_OFFS); writel(0, ioaddr + RTC_ALARM_INTERRUPT_CASUE_REG_OFFS); -- 1.7.1