[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250509014046.7399-1-liudalin@kylinsec.com.cn>
Date: Fri, 9 May 2025 09:40:46 +0800
From: Liu Dalin <liudalin@...insec.com.cn>
To: alexandre.belloni@...tlin.com,
zhoubinbin@...ngson.cn,
wangming01@...ngson.cn
Cc: chenhuacai@...nel.org,
gaojuxin@...ngson.cn,
git@...0n.name,
jiaxun.yang@...goat.com,
keguang.zhang@...il.com,
lixuefeng@...ngson.cn,
linux-rtc@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH V1] rtc: loongson: Add missing alarm notifications for ACPI RTC events
When an application sets and enables an alarm on Loongson RTC devices,
the alarm notification fails to propagate to userspace because the
ACPI event handler omits calling rtc_update_irq().
As a result, processes waiting via select() or poll() on RTC device
files fail to receive alarm notifications.
Fixes: 1b733a9ebc3d ("rtc: Add rtc driver for the Loongson family chips")
Signed-off-by: Liu Dalin <liudalin@...insec.com.cn>
---
drivers/rtc/rtc-loongson.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/rtc/rtc-loongson.c b/drivers/rtc/rtc-loongson.c
index 97e5625c064c..2ca7ffd5d7a9 100644
--- a/drivers/rtc/rtc-loongson.c
+++ b/drivers/rtc/rtc-loongson.c
@@ -129,6 +129,14 @@ static u32 loongson_rtc_handler(void *id)
{
struct loongson_rtc_priv *priv = (struct loongson_rtc_priv *)id;
+ rtc_update_irq(priv->rtcdev, 1, RTC_AF | RTC_IRQF);
+
+ /*
+ * The TOY_MATCH0_REG should be cleared 0 here,
+ * otherwise the interrupt cannot be cleared.
+ */
+ regmap_write(priv->regmap, TOY_MATCH0_REG, 0);
+
spin_lock(&priv->lock);
/* Disable RTC alarm wakeup and interrupt */
writel(readl(priv->pm_base + PM1_EN_REG) & ~RTC_EN,
--
2.33.0
Powered by blists - more mailing lists