Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95fbfa14 authored by Alexandre Belloni's avatar Alexandre Belloni
Browse files

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: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent 5490a1e0
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -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);