summaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-msm6242.c
diff options
context:
space:
mode:
authorKars de Jong <jongk@linux-m68k.org>2019-11-16 12:05:48 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-01-17 19:49:03 +0100
commit308c1e408b3295fb4b2cc55a2a697171d0a35324 (patch)
tree8ab8d4ccf00285b70d25fbc8e6d1d735584d90c5 /drivers/rtc/rtc-msm6242.c
parent4ef359320750f4815e1a1315374662a8bce7e2e5 (diff)
downloadlinux-stable-308c1e408b3295fb4b2cc55a2a697171d0a35324.tar.gz
linux-stable-308c1e408b3295fb4b2cc55a2a697171d0a35324.tar.bz2
linux-stable-308c1e408b3295fb4b2cc55a2a697171d0a35324.zip
rtc: msm6242: Fix reading of 10-hour digit
commit e34494c8df0cd96fc432efae121db3212c46ae48 upstream. The driver was reading the wrong register as the 10-hour digit due to a misplaced ')'. It was in fact reading the 1-second digit register due to this bug. Also remove the use of a magic number for the hour mask and use the define for it which was already present. Fixes: 4f9b9bba1dd1 ("rtc: Add an RTC driver for the Oki MSM6242") Tested-by: Kars de Jong <jongk@linux-m68k.org> Signed-off-by: Kars de Jong <jongk@linux-m68k.org> Link: https://lore.kernel.org/r/20191116110548.8562-1-jongk@linux-m68k.org Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/rtc/rtc-msm6242.c')
-rw-r--r--drivers/rtc/rtc-msm6242.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/rtc/rtc-msm6242.c b/drivers/rtc/rtc-msm6242.c
index 1c2d3c4a4963..b1f2bedee77e 100644
--- a/drivers/rtc/rtc-msm6242.c
+++ b/drivers/rtc/rtc-msm6242.c
@@ -133,7 +133,8 @@ static int msm6242_read_time(struct device *dev, struct rtc_time *tm)
msm6242_read(priv, MSM6242_SECOND1);
tm->tm_min = msm6242_read(priv, MSM6242_MINUTE10) * 10 +
msm6242_read(priv, MSM6242_MINUTE1);
- tm->tm_hour = (msm6242_read(priv, MSM6242_HOUR10 & 3)) * 10 +
+ tm->tm_hour = (msm6242_read(priv, MSM6242_HOUR10) &
+ MSM6242_HOUR10_HR_MASK) * 10 +
msm6242_read(priv, MSM6242_HOUR1);
tm->tm_mday = msm6242_read(priv, MSM6242_DAY10) * 10 +
msm6242_read(priv, MSM6242_DAY1);