[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CAMpQs4KN_OBOi8XO0pcXXDEt-D2RrN8NUTVYQBOHRY89gufi=A@mail.gmail.com>
Date: Thu, 8 May 2025 14:48:27 +0800
From: Binbin Zhou <zhoubb.aaron@...il.com>
To: "liudalin@...inos.com.cn" <liudalin@...inos.com.cn>
Cc: zhoubinbin <zhoubinbin@...ngson.cn>, 刘达林 <liudalin@...insec.com.cn>,
"alexandre.belloni" <alexandre.belloni@...tlin.com>, wangming01 <wangming01@...ngson.cn>,
chenhuacai <chenhuacai@...nel.org>, gaojuxin <gaojuxin@...ngson.cn>, git <git@...0n.name>,
"jiaxun.yang" <jiaxun.yang@...goat.com>, "keguang.zhang" <keguang.zhang@...il.com>,
lixuefeng <lixuefeng@...ngson.cn>, linux-rtc <linux-rtc@...r.kernel.org>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: Re: [PATCH] rtc: loongson: Add missing alarm notifications for
ACPI RTC events
Hi:
On Thu, May 8, 2025 at 2:20 PM liudalin@...inos.com.cn
<liudalin@...inos.com.cn> wrote:
>
> Hi Binbin:
> The described issue does not happened with or without the patch by test, as the interrupt is managed by acpi.
I see it.
>
> The device info and test result are as follows.
>
> 1. Device info
> [系统未激活][root@...l test]# dmidecode
> # dmidecode 3.5
> Getting SMBIOS data from sysfs.
> SMBIOS 3.2.0 present.
> Table at 0x90000000FD620000.
>
> Handle 0x0000, DMI type 0, 24 bytes
> BIOS Information
> Vendor: ZD-TECH
> Version: V09
> Release Date: 06/15/2022
> ROM Size: 8 MB
> Characteristics:
> PCI is supported
> BIOS is upgradeable
> BIOS shadowing is allowed
> Boot from CD is supported
> Selectable boot is supported
> BIOS ROM is socketed
> Serial services are supported (int 14h)
> USB legacy is supported
> Function key-initiated network boot is supported
> UEFI is supported
> BIOS Revision: 4.0
> Firmware Revision: 0.4
>
> Handle 0x0001, DMI type 1, 27 bytes
> System Information
> Manufacturer: GEIT
> Product Name: UT6000-LB5
> Version: 1.0
> Serial Number: TBD by OEM
> UUID: 00112233-4455-6677-8899-aabbccddeeff
> Wake-up Type: Power Switch
> SKU Number: Loongson_SKU
> Family: Type1Family
>
> Handle 0x0002, DMI type 2, 15 bytes
> Base Board Information
> Manufacturer: GEIT
> Product Name: GG-3A5000-02
My machine is also Loongosn-3A5000 + 7A2000, I think this should not affect.
> Version: 1.0
> Serial Number: Chassis Board Serial#To Be Filled By O.E.M
> Asset Tag: Type2 - Board Asset Tag
> Features:
> Board is a hosting board
> Board is replaceable
> Location In Chassis: Type2 - Board Chassis Location
> Chassis Handle: 0xFFFF
> Type: Motherboard
> Contained Object Handles: 0
>
> 2. The system exhibits a timeout error when waiting for alarm signal response without the patch.
> [系统未激活][root@...l test]# cat /proc/interrupts |grep acpi
> 21: 3 0 0 0 PCH PIC 1 acpi
> [系统未激活][root@...l test]#
> [系统未激活][root@...l test]# ./rtc01
> RTC READ TEST:
> RTC READ TEST Passed
> Current RTC date/time is 8-5-2025, 05:50:05.
> RTC ALARM TEST :Alarm time set to 05:50:10.
> Waiting 5 seconds for the alarm...
> Timed out waiting for the alarm
> RTC UPDATE INTERRUPTS TEST :
> RTC_UIE_ON not supported
> RTC Tests Done!
> [系统未激活][root@...l test]#
> [系统未激活][root@...l test]# cat /proc/interrupts |grep acpi
> 21: 4 0 0 0 PCH PIC 1 acpi
> [系统未激活][root@...l test]#
>
Please try continuous testing to see if you get different results.
Here is my test code, it behaves fine on Loongson-2K1000, you can
compare it with yours.
https://gist.github.com/AaronDot/affafc0b861783aee128a76b34d45f55
Also, your test code can be provided to me for testing.
> 3. There is no error with the patch applied and the interrupts are triggered ok
> [系统未激活][root@...l test]# cat /proc/interrupts |grep acpi
> 21: 0 0 0 0 PCH PIC 1 acpi
> [系统未激活][root@...l test]#
> [系统未激活][root@...l test]# ./rtc01
> RTC READ TEST:
> RTC READ TEST Passed
> Current RTC date/time is 8-5-2025, 06:09:03.
> RTC ALARM TEST :Alarm time set to 06:09:08.
> Waiting 5 seconds for the alarm...
> Alarm rang.
> RTC ALARM TEST Passed
> RTC UPDATE INTERRUPTS TEST :
> RTC_UIE_ON not supported
> RTC Tests Done!
> [系统未激活][root@...l test]#
> [系统未激活][root@...l test]# cat /proc/interrupts |grep acpi
> 21: 1 0 0 0 PCH PIC 1 acpi
> [系统未激活][root@...l test]#
>
>
> ________________________________
> liudalin@...inos.com.cn
>
>
> From: Binbin Zhou
> Date: 2025-05-08 11:12
> To: Liu Dalin; alexandre.belloni; wangming01
> CC: chenhuacai; gaojuxin; git; jiaxun.yang; keguang.zhang; lixuefeng; linux-rtc; linux-kernel; zhoubb.aaron
> Subject: Re: [PATCH] rtc: loongson: Add missing alarm notifications for ACPI RTC events
> Hi Dalin:
>
> Thanks for your patch.
>
> On 2025/4/29 14:27, Liu Dalin wrote:
> > 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 | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/rtc/rtc-loongson.c b/drivers/rtc/rtc-loongson.c
> > index 97e5625c064c..0c573f198f63 100644
> > --- a/drivers/rtc/rtc-loongson.c
> > +++ b/drivers/rtc/rtc-loongson.c
> > @@ -129,6 +129,8 @@ 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);
> > +
> While testing the patch, I noticed that interrupts are triggered
> multiple times (/proc/interrupt), not sure if you have the same issue.
>
> I think we need a similar operation to loongson_rtc_isr() to clear the
> interrupt:
> 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,
> Thanks.
> Binbin
>
>
>
--
Thanks.
Binbin
Powered by blists - more mailing lists