https://bugzilla.kernel.org/show_bug.cgi?id=217714

Bagas Sanjaya (bagasdo...@gmail.com) changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bagasdo...@gmail.com

--- Comment #1 from Bagas Sanjaya (bagasdo...@gmail.com) ---
(In reply to Ivan Hu from comment #0)
> Get ACPI error mesages below, 
> 
> [Wed May 31 14:34:07 2023] ACPI Error: No handler for Region [RTCM]
> (000000007ecf70cd) [SystemCMOS] (20220331/evregion-130)
> [Wed May 31 14:34:07 2023] ACPI Error: Region SystemCMOS (ID=5) has no
> handler (20220331/exfldio-261)
> 
> [Wed May 31 14:34:07 2023] Initialized Local Variables for Method [_GRT]:
> [Wed May 31 14:34:07 2023] Local1: 00000000d3a30199 <Obj> Integer
> 0000000000000000
> [Wed May 31 14:34:07 2023] No Arguments are initialized for method [_GRT]
> [Wed May 31 14:34:07 2023] ACPI Error: Aborting method \_SB.AWAC._GRT due to
> previous error (AE_NOT_EXIST) (20220331/psparse-529)
> 
> The issue comes from the Bios implement ACPI AWAC(time and alarm device,
> "ACPI000E") by using the SystemCMOS, and the kernel acpi-tad driver has no
> handler for dealing with it. When it call _GRT: Get Real Time or _SRT: Set
> Real Time, so it will get the "No handler for Region SystemCMOS" and
> AE_NOT_EXIST issue.
> 
>         Device (AWAC)
>         {
>             Name (_HID, "ACPI000E" /* Time and Alarm Device */) 
>             Name (WAST, Zero)
>             Name (WTTR, Zero)
>             ....
>             Method (_GCP, 0, NotSerialized) // _GCP: Get Capabilities
>             {
>                 Return (0xB7)
>             }
> 
>             OperationRegion (RTCM, SystemCMOS, Zero, 0x3F)
>             Field (RTCM, ByteAcc, Lock, Preserve)
>             {
>                 SEC, 8,
>                 Offset (0x02),
>                 MIN, 8,
>                 Offset (0x04),
>                 HOR, 8,
>                 Offset (0x07),
>                 DAY, 8,
>                 MON, 8,
>                 YEAR, 8,
>                 REGA, 8,
>                 Offset (0x32),
>                 CNTY, 8
>             }
> 
>             Method (_GRT, 0, Serialized) // _GRT: Get Real Time
>             {
>                 Name (BUFF, Buffer (0x10) {})
>                 CreateWordField (BUFF, Zero, Y)
>                 CreateByteField (BUFF, 0x02, M)
>                 CreateByteField (BUFF, 0x03, D)
>                 CreateByteField (BUFF, 0x04, H)
>                 CreateByteField (BUFF, 0x05, MIN1)
>                 CreateByteField (BUFF, 0x06, S)
>                 CreateByteField (BUFF, 0x07, V)
>                 CreateWordField (BUFF, 0x0A, TZ)
>                 CreateByteField (BUFF, 0x0C, DL)
>                 Acquire (RTCL, 0xFFFF)
>                 Local1 = Zero
>                 Name (TOUT, 0x000186A0)
>                 TOUT /= 0x0A
>                 While (((REGA & 0x80) && (Local1 < TOUT)))
>                 {
>                     Stall (0x0A)
>                     Local1 += 0x0A
>                 }
> 
>                 If ((Local1 >= TOUT))
>                 {
>                     ADBG ("_GRT timeout fail")
>                 }
> 
>                 FromBCD (YEAR, Local5)
>                 FromBCD (CNTY, Local6)
>                 Y = ((Local6 * 0x64) + Local5)
>                 FromBCD (MON, M) /* \_SB_.AWAC._GRT.M___ */
>                 FromBCD (DAY, D) /* \_SB_.AWAC._GRT.D___ */
>                 FromBCD (HOR, H) /* \_SB_.AWAC._GRT.H___ */
>                 FromBCD (MIN, MIN1) /* \_SB_.AWAC._GRT.MIN1 */
>                 FromBCD (SEC, S) /* \_SB_.AWAC._GRT.S___ */
>                 Release (RTCL)
>                 TZ = 0x07FF
>                 DL = Zero
>                 V = One
>                 Return (BUFF) /* \_SB_.AWAC._GRT.BUFF */
>             }
> 
>             Method (_SRT, 1, NotSerialized) // _SRT: Set Real Time
>             {
>                 CreateWordField (Arg0, Zero, Y)
>                 CreateByteField (Arg0, 0x02, M)
>                 CreateByteField (Arg0, 0x03, D)
>                 CreateByteField (Arg0, 0x04, H)
>                 CreateByteField (Arg0, 0x05, MIN1)
>                 CreateByteField (Arg0, 0x06, S)
>                 Acquire (RTCL, 0xFFFF)
>                 Local1 = Zero
>                 Name (TOUT, 0x000186A0)
>                 TOUT /= 0x0A
>                 While (((REGA & 0x80) && (Local1 < TOUT)))
>                 {
>                     Stall (0x0A)
>                     Local1 += 0x0A
>                 }
> 
>                 If ((Local1 >= TOUT))
>                 {
>                     ADBG ("_SRT timeout fail")
>                     Release (RTCL)
>                     Return (0xFFFFFFFF)
>                 }
> 
>                 Divide (Y, 0x64, Local5, Local4)
>                 ToBCD (Local4, CNTY) /* \_SB_.AWAC.CNTY */
>                 ToBCD (Local5, YEAR) /* \_SB_.AWAC.YEAR */
>                 ToBCD (M, MON) /* \_SB_.AWAC.MON_ */
>                 ToBCD (D, DAY) /* \_SB_.AWAC.DAY_ */
>                 ToBCD (H, HOR) /* \_SB_.AWAC.HOR_ */
>                 ToBCD (MIN1, MIN) /* \_SB_.AWAC.MIN_ */
>                 ToBCD (S, SEC) /* \_SB_.AWAC.SEC_ */
>                 Release (RTCL)
>                 Return (Zero)
>             }
>          ...

What kernel version do you have this issue with?

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.

_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to