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

Reply via email to