diff options
author | Patrick Rudolph <siro@das-labor.org> | 2018-07-29 08:08:33 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-07-30 18:59:51 +0000 |
commit | dbf5a5d0f8c63269a8f4fed72b70fbcc3d52e161 (patch) | |
tree | 8c3f74fc4e6cf04dd383c89d368dc31650068e62 /src/ec/lenovo | |
parent | e67f626664a1c9c6f21fe903cb37a2a57992fbba (diff) |
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>
Diffstat (limited to 'src/ec/lenovo')
-rw-r--r-- | src/ec/lenovo/h8/acpi/ec.asl | 14 | ||||
-rw-r--r-- | src/ec/lenovo/h8/acpi/thinkpad.asl | 12 |
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) |