mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 07:47:50 +00:00
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. The ACPI interrupt is also triggered multiple times. In loongson_rtc_handler, we need to clear TOY_MATCH0_REG to resolve this issue. Fixes:09471d8f5b("rtc: loongson: clear TOY_MATCH0_REG in loongson_rtc_isr()") Fixes:1b733a9ebc("rtc: Add rtc driver for the Loongson family chips") Signed-off-by: Liu Dalin <liudalin@kylinsec.com.cn> Reviewed-by: Binbin Zhou <zhoubinbin@loongson.cn> Link: https://lore.kernel.org/r/20250509084416.7979-1-liudalin@kylinsec.com.cn Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
committed by
Alexandre Belloni
parent
d9f82683b1
commit
5af9f1fa57
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user