From: Amit Singh Tomar <amittomer25@gmail.com>
To: andre.przywara@arm.com, linus.walleij@linaro.org,
alexandre.belloni@bootlin.com
Cc: linux-rtc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
Amit Singh Tomar <amittomer25@gmail.com>
Subject: [PATCH] rtc: pl031: enable rtc alarm interrupt again
Date: Thu, 13 Aug 2020 16:44:28 +0530 [thread overview]
Message-ID: <1597317268-19537-1-git-send-email-amittomer25@gmail.com> (raw)
After commit c8ff5841a90b ("rtc: pl031: switch to rtc_time64_to_tm/
rtc_tm_to_time64"), it has been observed the rtc alarm interrupt is
no more registered, and due to this waking up the system
(using rtc alarm interrupt) from suspend state is no longer possible.
Besides this, we get broken output from "hwclock".
root@localhost:~# hwclock
hwclock: select() to /dev/rtc to wait for clock tick timed out: No such file or directory
This is due to the fact that call to pl031_alarm_irq_enable(dev, alarm->enabled)
is removed (from pl031_set_alarm()) in commit c8ff5841a90b, and alarm interrupt
never gets enabled.
This commit fixes it by re-introduces the missing
pl031_alarm_irq_enable(dev, alarm->enabled).
Fixes: c8ff5841a90b ("rtc: pl031: switch to rtc_time64_to_tm/rtc_tm_to_time64")
Signed-off-by: Amit Singh Tomar <amittomer25@gmail.com>
---
This patch is tested on QEMU ARM64 TCG guest
Without this patch:
root@localhost:~# echo +10 > /sys/class/rtc/rtc0/wakealarm && sleep 10 && cat /proc/interrupts | grep pl031
39: 0 0 GICv2 34 Level rtc-pl031
With this patch:
root@localhost:~# echo +10 > /sys/class/rtc/rtc0/wakealarm && sleep 10 && cat /proc/interrupts | grep pl031
39: 1 0 GICv2 34 Level rtc-pl031
root@localhost:~# hwclock
Thu Aug 13 11:00:06 2020 -1.009351 seconds
root@localhost:~# echo +30 > /sys/class/rtc/rtc0/wakealarm
root@localhost:~# echo -n mem > /sys/power/state
root@localhost:~# hwclock -r
Thu Aug 13 08:59:14 2020 -1.010357 seconds
---
drivers/rtc/rtc-pl031.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c
index 40d7450a1ce4..c6b89273feba 100644
--- a/drivers/rtc/rtc-pl031.c
+++ b/drivers/rtc/rtc-pl031.c
@@ -275,6 +275,7 @@ static int pl031_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
struct pl031_local *ldata = dev_get_drvdata(dev);
writel(rtc_tm_to_time64(&alarm->time), ldata->base + RTC_MR);
+ pl031_alarm_irq_enable(dev, alarm->enabled);
return 0;
}
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2020-08-13 11:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-13 11:14 Amit Singh Tomar [this message]
2020-08-13 11:39 ` [PATCH] rtc: pl031: enable rtc alarm interrupt again Alexandre Belloni
2020-08-13 11:57 ` Amit Tomer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1597317268-19537-1-git-send-email-amittomer25@gmail.com \
--to=amittomer25@gmail.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andre.przywara@arm.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-rtc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox