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>
diff --git a/src/ec/system76/ec/acpi/ec.asl b/src/ec/system76/ec/acpi/ec.asl
index 128bd56..612c358 100644
--- a/src/ec/system76/ec/acpi/ec.asl
+++ b/src/ec/system76/ec/acpi/ec.asl
@@ -62,9 +62,13 @@
 		}
 	}
 
+	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 @@
 	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