forked from Minki/linux
rtc: mxc_v2: let the core handle rtc range
This RTC is a 32-bit second counter. This also solves an issue where mxc_rtc_set_alarm() can return with the lock taken. Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
parent
5490a1e018
commit
95fbfa14b4
@ -165,11 +165,6 @@ static int mxc_rtc_set_time(struct device *dev, struct rtc_time *tm)
|
||||
time64_t time = rtc_tm_to_time64(tm);
|
||||
int ret;
|
||||
|
||||
if (time > U32_MAX) {
|
||||
dev_err(dev, "RTC exceeded by %llus\n", time - U32_MAX);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = mxc_rtc_lock(pdata);
|
||||
if (ret)
|
||||
return ret;
|
||||
@ -248,11 +243,6 @@ static int mxc_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (time > U32_MAX) {
|
||||
dev_err(dev, "Hopefully I am out of service by then :-(\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
writel((u32)time, pdata->ioaddr + SRTC_LPSAR);
|
||||
|
||||
/* clear alarm interrupt status bit */
|
||||
@ -348,6 +338,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
|
||||
return PTR_ERR(pdata->rtc);
|
||||
|
||||
pdata->rtc->ops = &mxc_rtc_ops;
|
||||
pdata->rtc->range_max = U32_MAX;
|
||||
|
||||
clk_disable(pdata->clk);
|
||||
platform_set_drvdata(pdev, pdata);
|
||||
|
Loading…
Reference in New Issue
Block a user