https://bugzilla.kernel.org/show_bug.cgi?id=220505
--- Comment #19 from tropicaal ([email protected]) --- After messing around further with AMLi on Windows and realizing it's a dead end, I've taken a different approach and tried manually issuing each ACPI method call one-by-one using the acpi_call kernel module to attempt to "replay" the S0ix sleep process on this device to bisect exactly when the EC dies. The good news is that I've isolated the exact point at which they stopped working, and have reliably managed to wake them to restore thermals and the keyboard backlight after waking from S0ix. The following EC methods are called during the suspend process: - \_SB.PC00.LPCB.EC0.UPHK(3) suspends keyboard backlight with TCWT(0xCC, 0x55) - \_SB.PC00.LPCB.EC0.UPHK(5) suspends fans by setting a GPIO pin low via SGOV(ELPN, Zero) - \_SB.PC00.LPCB.EC0.UPHK(7) noop (based on AML disassembly) The following methods should be called after waking from s2idle to correctly restore the EC: - \_SB.PC00.LPCB.EC0.UPHK(4) appears (?) to wake the keyboard backlight - \_SB.PC00.LPCB.EC0.UPHK(9) wakes fans Based on the AML disassembly, it seems that UPHK is called by \_SB.PEPD._DSM for doing power management with various EC-related functions. After waking from sleep, arguments 0x06, 0x08, and 0x04 are passed, but fans are not properly woken up from their sleep state. I'll look further into this, but for now we at least have a viable method of fixing this from userland with the acpi_call module thankfully. -- 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 [email protected] https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla
