The week day may not be set properly by userspace. This would result is
missed alarms. Disable alarm matching on weekday.

Signed-off-by: Alexandre Belloni <alexandre.bell...@bootlin.com>
---
 drivers/rtc/rtc-pcf2123.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-pcf2123.c b/drivers/rtc/rtc-pcf2123.c
index fb542a930bf0..5f604d83289c 100644
--- a/drivers/rtc/rtc-pcf2123.c
+++ b/drivers/rtc/rtc-pcf2123.c
@@ -82,7 +82,7 @@
 #define OSC_HAS_STOPPED                BIT(7)  /* Clock has been stopped */
 
 /* PCF2123_REG_ALRM_XX BITS */
-#define ALRM_ENABLE            BIT(7)  /* MN, HR, DM, or DW alarm enable */
+#define ALRM_DISABLE           BIT(7)  /* MN, HR, DM, or DW alarm matching */
 
 /* PCF2123_REG_TMR_CLKOUT BITS */
 #define CD_TMR_4096KHZ         (0)     /* 4096 KHz countdown timer */
@@ -288,7 +288,7 @@ static int pcf2123_rtc_set_alarm(struct device *dev, struct 
rtc_wkalrm *alm)
        txbuf[0] = bin2bcd(alm->time.tm_min & 0x7F);
        txbuf[1] = bin2bcd(alm->time.tm_hour & 0x3F);
        txbuf[2] = bin2bcd(alm->time.tm_mday & 0x3F);
-       txbuf[3] = bin2bcd(alm->time.tm_wday & 0x07);
+       txbuf[3] = ALRM_DISABLE;
 
        ret = regmap_bulk_write(pdata->map, PCF2123_REG_ALRM_MN, txbuf,
                                sizeof(txbuf));
-- 
2.21.0

Reply via email to