diff --git a/src/mainboard/google/brox/smihandler.c b/src/mainboard/google/brox/smihandler.c index 21b441f8d9..d583d4f00c 100644 --- a/src/mainboard/google/brox/smihandler.c +++ b/src/mainboard/google/brox/smihandler.c @@ -1,11 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ +#include #include #include #include #include #include #include +#include #include void __weak variant_smi_sleep(u8 slp_typ) {} @@ -14,6 +16,12 @@ void mainboard_smi_sleep(u8 slp_typ) { variant_smi_sleep(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)