From 38201ca3c58d27ac95ee08995558c7176b4feb13 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Myl=C3=A8ne=20Josserand?= Date: Tue, 3 May 2016 11:54:37 +0200 Subject: [PATCH] rtc: rv3029: fix set_time function MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The bin2bcd function in set_time is uncorrect on weekdays as the bit mask should be done at the end of arithmetic operations. Signed-off-by: Mylène Josserand Signed-off-by: Alexandre Belloni --- drivers/rtc/rtc-rv3029c2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-rv3029c2.c b/drivers/rtc/rtc-rv3029c2.c index 88a0c18..916bbc2 100644 --- a/drivers/rtc/rtc-rv3029c2.c +++ b/drivers/rtc/rtc-rv3029c2.c @@ -502,7 +502,7 @@ static int rv3029_set_time(struct device *dev, struct rtc_time *tm) regs[RV3029_W_HOURS - RV3029_W_SEC] = bin2bcd(tm->tm_hour); regs[RV3029_W_DATE - RV3029_W_SEC] = bin2bcd(tm->tm_mday); regs[RV3029_W_MONTHS - RV3029_W_SEC] = bin2bcd(tm->tm_mon + 1); - regs[RV3029_W_DAYS - RV3029_W_SEC] = bin2bcd((tm->tm_wday & 7) + 1); + regs[RV3029_W_DAYS - RV3029_W_SEC] = bin2bcd(tm->tm_wday + 1) & 0x7; regs[RV3029_W_YEARS - RV3029_W_SEC] = bin2bcd(tm->tm_year - 100); ret = rv3029_write_regs(dev, RV3029_W_SEC, regs, -- 2.7.4