rtc: m41t80: Correct alarm month range with RTC reads
authorMaciej W. Rozycki <macro@linux-mips.org>
Wed, 7 Nov 2018 02:39:13 +0000 (02:39 +0000)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Wed, 14 Nov 2018 09:44:32 +0000 (10:44 +0100)
Add the missing adjustment of the month range on alarm reads from the
RTC, correcting an issue coming from commit 9c6dfed92c3e ("rtc: m41t80:
add alarm functionality").  The range is 1-12 for hardware and 0-11 for
`struct rtc_time', and is already correctly handled on alarm writes to
the RTC.

It was correct up until commit 48e9766726eb ("drivers/rtc/rtc-m41t80.c:
remove disabled alarm functionality") too, which removed the previous
implementation of alarm support.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Fixes: 9c6dfed92c3e ("rtc: m41t80: add alarm functionality")
References: 48e9766726eb ("drivers/rtc/rtc-m41t80.c: remove disabled alarm functionality")
Cc: stable@vger.kernel.org # 4.7+
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-m41t80.c

index a3fb235..7431a79 100644 (file)
@@ -393,7 +393,7 @@ static int m41t80_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
        alrm->time.tm_min  = bcd2bin(alarmvals[3] & 0x7f);
        alrm->time.tm_hour = bcd2bin(alarmvals[2] & 0x3f);
        alrm->time.tm_mday = bcd2bin(alarmvals[1] & 0x3f);
-       alrm->time.tm_mon  = bcd2bin(alarmvals[0] & 0x3f);
+       alrm->time.tm_mon  = bcd2bin(alarmvals[0] & 0x3f) - 1;
 
        alrm->enabled = !!(alarmvals[0] & M41T80_ALMON_AFE);
        alrm->pending = (flags & M41T80_FLAGS_AF) && alrm->enabled;