summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Rudolph <siro@das-labor.org>2018-07-29 08:08:33 +0200
committerPatrick Georgi <pgeorgi@google.com>2018-07-30 18:59:51 +0000
commitdbf5a5d0f8c63269a8f4fed72b70fbcc3d52e161 (patch)
tree8c3f74fc4e6cf04dd383c89d368dc31650068e62
parente67f626664a1c9c6f21fe903cb37a2a57992fbba (diff)
downloadcoreboot-dbf5a5d0f8c63269a8f4fed72b70fbcc3d52e161.tar.xz
ec/lenovo/h8/acpi: Fix ACPI error in _INI
Store the power on defaults in the _REG method after the ERAM region is ready for use. It might not be ready when accessed from _INI. Tested on Lenovo T430. Change-Id: I70f22f8ac61dd850180fa159313bb0f8e4ab31d9 Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-on: https://review.coreboot.org/27710 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
-rw-r--r--src/ec/lenovo/h8/acpi/ec.asl14
-rw-r--r--src/ec/lenovo/h8/acpi/thinkpad.asl12
2 files changed, 17 insertions, 9 deletions
diff --git a/src/ec/lenovo/h8/acpi/ec.asl b/src/ec/lenovo/h8/acpi/ec.asl
index 8a1b9c4343..327a2cfe1f 100644
--- a/src/ec/lenovo/h8/acpi/ec.asl
+++ b/src/ec/lenovo/h8/acpi/ec.asl
@@ -75,6 +75,20 @@ Device(EC)
DKR3, 1 /* Dock register 3 */
}
+ /* Called on OperationRegion driver changes */
+ Method (_REG, 2, NotSerialized)
+ {
+ /* Wait for ERAM driver loaded */
+ if (LEqual(Arg1, One)) {
+ /* Fill HKEY defaults on first boot */
+ if (LEqual(^HKEY.INIT, Zero)) {
+ Store (BTEB, ^HKEY.WBDC)
+ Store (WWEB, ^HKEY.WWAN)
+ Store (One, ^HKEY.INIT)
+ }
+ }
+ }
+
Method (_CRS, 0, Serialized)
{
Name (ECMD, ResourceTemplate()
diff --git a/src/ec/lenovo/h8/acpi/thinkpad.asl b/src/ec/lenovo/h8/acpi/thinkpad.asl
index 8fb5716531..1997d08549 100644
--- a/src/ec/lenovo/h8/acpi/thinkpad.asl
+++ b/src/ec/lenovo/h8/acpi/thinkpad.asl
@@ -157,6 +157,9 @@ Device (HKEY)
Return (\_SB.PCI0.LPCB.EC.GSTS)
}
+ /* Set to one on first boot */
+ Name (INIT, 0)
+
/* Has thinkpad_acpi module loaded */
Name (HAST, 0)
@@ -305,15 +308,6 @@ Device (HKEY)
}
/*
- * Store initial state
- */
- Method (_INI, 0, NotSerialized)
- {
- Store (\_SB.PCI0.LPCB.EC.BTEB, WBDC)
- Store (\_SB.PCI0.LPCB.EC.WWEB, WWAN)
- }
-
- /*
* Called from _WAK
*/
Method (WAKE, 1)