summaryrefslogtreecommitdiff
path: root/src/ec/system76
diff options
context:
space:
mode:
authorJeremy Soller <jeremy@system76.com>2021-02-10 10:26:14 -0700
committerPatrick Georgi <pgeorgi@google.com>2021-02-27 09:36:23 +0000
commitff687b1f24af2861d4c54950069c9ff4a98b54e0 (patch)
tree8171fd2aa7acef9d1df3ab879abc881e031b0732 /src/ec/system76
parent9bce1fe7276d2f600f7af2e09952011ef5366ae8 (diff)
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 <jeremy@system76.com> Signed-off-by: Tim Crawford <tcrawford@system76.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/50489 Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/ec/system76')
-rw-r--r--src/ec/system76/ec/acpi/ec.asl7
1 files changed, 7 insertions, 0 deletions
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