rtc: cpcap: fix range
authorSebastian Reichel <sebastian.reichel@collabora.com>
Mon, 29 Jun 2020 11:41:23 +0000 (13:41 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 2 Jul 2020 20:32:00 +0000 (22:32 +0200)
Unbreak CPCAP driver, which has one more bit in the day counter
increasing the max. range from 2014 to 2058. The original commit
introducing the range limit was obviously wrong, since the driver
has only been written in 2017 (3 years after 14 bits would have
run out).

Fixes: d2377f8cc5a7 ("rtc: cpcap: set range")
Reported-by: Sicelo A. Mhlongo <absicsz@gmail.com>
Reported-by: Dev Null <devnull@uvos.xyz>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Tested-by: Merlijn Wajer <merlijn@wizzup.org>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Merlijn Wajer <merlijn@wizzup.org>
Link: https://lore.kernel.org/r/20200629114123.27956-1-sebastian.reichel@collabora.com
drivers/rtc/rtc-cpcap.c

index a603f1f211250cb532e44e592e6b6d7c4d327aa6..800667d73a6fb37d93c160b653edf491de42fc71 100644 (file)
@@ -261,7 +261,7 @@ static int cpcap_rtc_probe(struct platform_device *pdev)
                return PTR_ERR(rtc->rtc_dev);
 
        rtc->rtc_dev->ops = &cpcap_rtc_ops;
-       rtc->rtc_dev->range_max = (1 << 14) * SECS_PER_DAY - 1;
+       rtc->rtc_dev->range_max = (timeu64_t) (DAY_MASK + 1) * SECS_PER_DAY - 1;
 
        err = cpcap_get_vendor(dev, rtc->regmap, &rtc->vendor);
        if (err)