summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/google/brya/smihandler.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mainboard/google/brya/smihandler.c b/src/mainboard/google/brya/smihandler.c
index 9208d51613..2adc62b5a8 100644
--- a/src/mainboard/google/brya/smihandler.c
+++ b/src/mainboard/google/brya/smihandler.c
@@ -1,15 +1,23 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
+#include <acpi/acpi.h>
#include <cpu/x86/smm.h>
#include <ec/google/chromeec/ec.h>
#include <ec/google/chromeec/smm.h>
#include <elog.h>
#include <intelblocks/smihandler.h>
+#include <intelblocks/xhci.h>
#include <variant/ec.h>
void mainboard_smi_sleep(u8 slp_typ)
{
chromeec_smi_sleep(slp_typ, MAINBOARD_EC_S3_WAKE_EVENTS, MAINBOARD_EC_S5_WAKE_EVENTS);
+ /*
+ * Workaround: Reset the XHCI controller prior to S5 to avoid
+ * PMC timeout error during poweron from S5.
+ */
+ if (slp_typ == ACPI_S5)
+ xhci_host_reset();
}
int mainboard_smi_apmc(u8 apmc)