Created attachment 298983 [details] my decompiled dsdt On running the command `sudo journalctl -b -p -err` the following error is shown on my hp-15bs145tu laptop, -- Journal begins at Mon 2021-09-27 10:10:50 IST, ends at Mon 2021-09-27 19:40:51 IST. -- Sep 27 15:29:01 bhanu-Arch kernel: ACPI Error: No handler for Region [RCM0] (0000000017f32213) [SystemCMOS] (20200925/evregion-129) Sep 27 15:29:01 bhanu-Arch kernel: ACPI Error: Region SystemCMOS (ID=5) has no handler (20200925/exfldio-261) Sep 27 15:29:01 bhanu-Arch kernel: ACPI Error: Aborting method \_SB.WMID.ESDT due to previous error (AE_NOT_EXIST) (20200925/psparse-529) Sep 27 15:29:01 bhanu-Arch kernel: ACPI Error: Aborting method \_SB.PCI0.LPCB.EC0._Q42 due to previous error (AE_NOT_EXIST) (20200925/psparse-529) The problem it raising is, hibernate doesn't work at all, and after resuming from suspend my kernel panic or laptop simply hangs and which forces me to manually reboot it. this bug is present in both the lts and upstream kernel and on other distributions such as Ubuntu, manjaro, and others.
Created attachment 298985 [details] fwts dumped output the lines at number 6829 in the above file : gives some errors releated to this as follows : FAILED [HIGH] KlogAcpiNoHandlerForRegion: Test 1, HIGH Kernel message: [ 6.074035] ACPI Error: No handler for Region [RCM0] (0000000083afb5d2) [SystemCMOS] (20200925/evregion-129) Message repeated 1 times. ADVICE: An attempt to dispatch an address space or operation region access to CMOS memory has failed because the Linux kernel does not yet have a CMOS handler. This may have little or no detrimental effect, however it is worth examining the AML to see what kind of access is occurring to see if the firmware really requires CMOS access. For example, recent firmware may implement Peak Shift, which requires access CMOS memory and this can trigger this error. FAILED [HIGH] KlogAcpiKlogRegionNoHandler: Test 1, HIGH Kernel message: [ 6.074040] ACPI Error: Region SystemCMOS (ID=5) has no handler (20200925 /exfldio-261) Message repeated 1 times. ADVICE: An access (read or write) to an operation region has been attempted and a region handler for this has not been implemented, this may need to be implemented to provide the expected behaviour. See acpi_ex_access_region(). FAILED [CRITICAL] KlogAcpiParseOrExecFailure: Test 1, CRITICAL Kernel message: [ 6.074044] ACPI Error: Aborting method \_SB.WMID.ESDT due to previous error (AE_NOT_EXIST) (20200925/psparse-529) Message repeated 1 times. ADVICE: The ACPI engine has failed to execute some AML. The error message above lists the method that caused this error. FAILED [CRITICAL] KlogAcpiParseOrExecFailure: Test 1, CRITICAL Kernel message: [ 6.074048] ACPI Error: Aborting method \_SB.PCI0.LPCB.EC0._Q42 due to previous error (AE_NOT_EXIST) (20200925/psparse-529) Message repeated 1 times. ADVICE: The ACPI engine has failed to execute some AML. The error message above lists the method that caused this error.
Created attachment 298987 [details] dumped output of compiling the dsdt.dsl attached with 'iasl' compiler at line number 673 the above file contains some warnings releated to 'cmos' as follows : dsdt.dsl 20832: OperationRegion (CMOS, SystemIO, 0x70, 0x04) Warning 3175 - ^ Static OperationRegion should be declared outside control method dsdt.dsl 20832: OperationRegion (CMOS, SystemIO, 0x70, 0x04) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\RDCM) dsdt.dsl 20864: OperationRegion (CMOS, SystemIO, 0x70, 0x04) Warning 3175 - ^ Static OperationRegion should be declared outside control method dsdt.dsl 20864: OperationRegion (CMOS, SystemIO, 0x70, 0x04) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\WRCM)
Device (RTC) { Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {8} }) Method (_STA, 0, NotSerialized) // _STA: Status { Return (Zero) } } the RTC._STA returns Zero, which means it does not exist. ACPI will not install the address space handler to a non-present device. This might be the root cause of the issue. Can you please modify the dsdt table to make it return 0x0F instead, and check if there is any difference?
could you suggest(In reply to Zhang Rui from comment #3) > Device (RTC) > { > Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // > _HID: Hardware ID > Name (_CRS, ResourceTemplate () // _CRS: Current Resource > Settings > { > IO (Decode16, > 0x0070, // Range Minimum > 0x0070, // Range Maximum > 0x01, // Alignment > 0x08, // Length > ) > IRQNoFlags () > {8} > }) > Method (_STA, 0, NotSerialized) // _STA: Status > { > Return (Zero) > } > } > > the RTC._STA returns Zero, which means it does not exist. > ACPI will not install the address space handler to a non-present device. > This might be the root cause of the issue. > > Can you please modify the dsdt table to make it return 0x0F instead, and > check if there is any difference? I actually don't know, how to do it, could you provide some link or article which can guide me on steps to perform the said operation by you.
https://wiki.debian.org/OverridingDSDT or https://wiki.archlinux.org/title/DSDT should help.