aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMAULIK V VAGHELA <maulik.v.vaghela@intel.com>2022-02-21 19:02:19 +0530
committerFelix Held <felix-coreboot@felixheld.de>2022-03-01 11:57:38 +0000
commita4af1b58a51cd84fbce6de3ce1b13ab4cc994f36 (patch)
tree7cb54023fe0edcb0ceab4787b8d4821598507e4d
parentad8437c5aa5e4fcbea2f5567266a708ce887ff9e (diff)
intelblocks/cse: Skip sending EOP during S3 resume
coreboot should skip sending EOP during S3 resume since CSE doesn't require EOP in resume path. Currently EOP is being sent during PAYLOAD_BOOT or PAYLOAD_LOAD stage which doesn't get called during S3 resume. In case EOP is moved in earlier stage, coreboot might send EOP in S3 resume as well. This patch adds check before calling cse_send_eop. BUG=b:211085685 BRANCH=None TEST=Check by moving EOP to earlier stage. EOP sending is skipped during S3 resume. Change-Id: I8f22446974bc1e7b2d57468633c36bb99ffe1436 Signed-off-by: MAULIK V VAGHELA <maulik.v.vaghela@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/62271 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com> Reviewed-by: Subrata Banik <subratabanik@google.com>
-rw-r--r--src/soc/intel/common/block/cse/cse_eop.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/cse/cse_eop.c b/src/soc/intel/common/block/cse/cse_eop.c
index 0f1d6cad2c..3a08a7381c 100644
--- a/src/soc/intel/common/block/cse/cse_eop.c
+++ b/src/soc/intel/common/block/cse/cse_eop.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
+#include <acpi/acpi.h>
#include <bootstate.h>
#include <console/console.h>
#include <intelblocks/cse.h>
@@ -175,6 +176,11 @@ static void do_send_end_of_post(void)
return;
}
+ if (acpi_get_sleep_type() == ACPI_S3) {
+ printk(BIOS_INFO, "Skip sending EOP during S3 resume\n");
+ return;
+ }
+
/*
* If CSE is already hidden then accessing CSE registers would be wrong and will
* receive junk, hence, return as CSE is already disabled.