From ff687b1f24af2861d4c54950069c9ff4a98b54e0 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 10 Feb 2021 10:26:14 -0700 Subject: [PATCH] ec/system76/ec: Preserve ECOS through suspend When the EC is reset on PLTRST this information will be lost, causing system control interrupts to potentially stop functioning. Change-Id: I137ef6c574a372601bc51f6e815158767acd0e1b Signed-off-by: Jeremy Soller Signed-off-by: Tim Crawford Reviewed-on: https://review.coreboot.org/c/coreboot/+/50489 Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) --- src/ec/system76/ec/acpi/ec.asl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ec/system76/ec/acpi/ec.asl b/src/ec/system76/ec/acpi/ec.asl index 128bd56304..612c358e08 100644 --- a/src/ec/system76/ec/acpi/ec.asl +++ b/src/ec/system76/ec/acpi/ec.asl @@ -62,9 +62,13 @@ Device (\_SB.PCI0.LPCB.EC0) } } + Name (S3OS, Zero) Method (PTS, 1, Serialized) { Debug = Concatenate("EC: PTS: ", ToHexString(Arg0)) If (ECOK) { + // Save ECOS during sleep + S3OS = ECOS + // Clear wake cause WFNO = Zero } @@ -73,6 +77,9 @@ Device (\_SB.PCI0.LPCB.EC0) Method (WAK, 1, Serialized) { Debug = Concatenate("EC: WAK: ", ToHexString(Arg0)) If (ECOK) { + // Restore ECOS after sleep + ECOS = S3OS + // Set current AC state ^^^^AC.ACFG = ADP