diff options
author | Tim Van Patten <timvp@google.com> | 2023-02-10 14:03:30 -0700 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2023-03-02 16:16:56 +0000 |
commit | 64871adae03bab52f26f1d3fff619e4bd3d83077 (patch) | |
tree | 92e23aafe0ce4ea7cf7ab6e25d14083e7e968a93 | |
parent | e67f7be6645f165160b491f72cabadcc32663789 (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.asl | 11 | ||||
-rw-r--r-- | src/mainboard/google/skyrim/variants/baseboard/include/baseboard/ec.h | 3 |
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)) |