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>
This commit is contained in:
Tim Van Patten 2023-02-10 14:03:30 -07:00 committed by Felix Held
parent e67f7be664
commit 64871adae0
2 changed files with 13 additions and 1 deletions

View file

@ -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
*/

View file

@ -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))