From 05df1084edecdd7a0e9560371debacfe70ab3896 Mon Sep 17 00:00:00 2001 From: Angel Pons Date: Wed, 8 Feb 2023 21:33:44 +0100 Subject: mb/prodrive/hermes: Hook up wake on USB option Hook up the `wake_on_usb` EEPROM setting so that it works as intended. TEST=Keysmash on a USB keyboard, verify Hermes does not wake from S3. Change-Id: I81531b90abae6a62754ea66c47e934e1f440bda2 Signed-off-by: Angel Pons Reviewed-on: https://review.coreboot.org/c/coreboot/+/72906 Reviewed-by: Lean Sheng Tan Tested-by: build bot (Jenkins) --- src/mainboard/prodrive/hermes/mainboard.c | 13 +++++++++++++ src/soc/intel/cannonlake/acpi/xhci.asl | 6 ++++++ 2 files changed, 19 insertions(+) (limited to 'src') diff --git a/src/mainboard/prodrive/hermes/mainboard.c b/src/mainboard/prodrive/hermes/mainboard.c index 0b0eb88ff6..18bd8a48b7 100644 --- a/src/mainboard/prodrive/hermes/mainboard.c +++ b/src/mainboard/prodrive/hermes/mainboard.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ +#include #include #include #include @@ -217,6 +218,18 @@ static void mainboard_acpi_fill_ssdt(const struct device *dev) acpigen_write_soc_gpio_op(usb_power_gpios[i]); } acpigen_pop_len(); + + if (!board_cfg->wake_on_usb) { + acpigen_write_if(); + acpigen_emit_byte(LNOT_OP); + acpigen_emit_byte(LLESS_OP); + acpigen_emit_byte(ARG0_OP); + acpigen_write_integer(ACPI_S3); + { + acpigen_write_store_int_to_namestr(0, "\\_SB.PCI0.XHCI.PMEE"); + } + acpigen_pop_len(); + } } acpigen_pop_len(); } diff --git a/src/soc/intel/cannonlake/acpi/xhci.asl b/src/soc/intel/cannonlake/acpi/xhci.asl index fbe811e952..bc4574d222 100644 --- a/src/soc/intel/cannonlake/acpi/xhci.asl +++ b/src/soc/intel/cannonlake/acpi/xhci.asl @@ -87,6 +87,12 @@ Device (XHCI) Offset (0x10), , 16, XMEM, 16, /* MEM_BASE */ + Offset (0x74), + D0D3, 2, /* POWERSTATE */ + , 6, + PMEE, 1, /* PME_EN */ + , 6, + PMES, 1, /* PME_STS */ } Method (_PS0, 0, Serialized) -- cgit v1.2.3