summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Van Patten <timvp@google.com>2023-02-10 14:03:30 -0700
committerFelix Held <felix-coreboot@felixheld.de>2023-03-02 16:16:56 +0000
commit64871adae03bab52f26f1d3fff619e4bd3d83077 (patch)
tree92e23aafe0ce4ea7cf7ab6e25d14083e7e968a93
parente67f7be6645f165160b491f72cabadcc32663789 (diff)
acpi/ec: Handle new host event EC_HOST_EVENT_BODY_DETECT_CHANGE
Handle the new host event EC_HOST_EVENT_BODY_DETECT_CHANGE. Previously, the EC sent the host event EC_HOST_EVENT_MODE_CHANGE when body detection changed between lap/desk mode. However, that event is a wake event, which resulted in spurious AP wake events being triggered when the EC detected lap/desk mode changes while the AP was suspended. To resolve this, the new host event EC_HOST_EVENT_BODY_DETECT_CHANGE was added, which will not be a wake event. This CL adds handling for the new event to acpi/ec.asl to switch DPTC tables when a change is detected. BRANCH=none BUG=b:261141172 TEST=bodydetectmode on|off, verify host event is received Change-Id: Iabeb7891489a209f45504804355f1fa817082976 Signed-off-by: Tim Van Patten <timvp@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/73298 Reviewed-by: Caveh Jalali <caveh@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
-rw-r--r--src/ec/google/chromeec/acpi/ec.asl11
-rw-r--r--src/mainboard/google/skyrim/variants/baseboard/include/baseboard/ec.h3
2 files changed, 13 insertions, 1 deletions
diff --git a/src/ec/google/chromeec/acpi/ec.asl b/src/ec/google/chromeec/acpi/ec.asl
index 9ff7b72194..8109eb3f0f 100644
--- a/src/ec/google/chromeec/acpi/ec.asl
+++ b/src/ec/google/chromeec/acpi/ec.asl
@@ -462,6 +462,17 @@ Device (EC0)
#endif
}
+ // Body Detect Change Event
+ Method (_Q21, 0, NotSerialized)
+ {
+ Printf ("EC: Body Detect Change Event")
+#if CONFIG(SOC_AMD_COMMON_BLOCK_ACPI_DPTC)
+ If (CondRefOf (\_SB.DPTC)) {
+ \_SB.DPTC()
+ }
+#endif
+ }
+
/*
* Dynamic Platform Thermal Framework support
*/
diff --git a/src/mainboard/google/skyrim/variants/baseboard/include/baseboard/ec.h b/src/mainboard/google/skyrim/variants/baseboard/include/baseboard/ec.h
index 1f5404609c..c04cc5b583 100644
--- a/src/mainboard/google/skyrim/variants/baseboard/include/baseboard/ec.h
+++ b/src/mainboard/google/skyrim/variants/baseboard/include/baseboard/ec.h
@@ -23,7 +23,8 @@
| EC_HOST_EVENT_MASK(EC_HOST_EVENT_PD_MCU) \
| EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE) \
| EC_HOST_EVENT_MASK(EC_HOST_EVENT_USB_MUX) \
- | EC_HOST_EVENT_MASK(EC_HOST_EVENT_PANIC))
+ | EC_HOST_EVENT_MASK(EC_HOST_EVENT_PANIC) \
+ | EC_HOST_EVENT_MASK(EC_HOST_EVENT_BODY_DETECT_CHANGE))
#define MAINBOARD_EC_SMI_EVENTS (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED))