From ac0dc4a8401e4531aa60a56d9ad4dfa0450eca78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Wed, 18 Nov 2020 07:40:21 +0200 Subject: ACPI S3: Replace stashed acpi_slp_typ value MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We currently have a mixture of calls used to determine global ACPI S3 state. Reduce the boilerplate, ultimately acpi_wakeup_is_s3() should be the only to keep. Change-Id: Iff950d2bcf7eacbbdd40865abf62c35a2e8c3c69 Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/47694 Reviewed-by: Angel Pons Tested-by: build bot (Jenkins) --- src/lib/romstage_handoff.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/lib') diff --git a/src/lib/romstage_handoff.c b/src/lib/romstage_handoff.c index 0a7a822f7b..faa2bc9f04 100644 --- a/src/lib/romstage_handoff.c +++ b/src/lib/romstage_handoff.c @@ -55,12 +55,23 @@ int romstage_handoff_init(int is_s3_resume) int romstage_handoff_is_resume(void) { + static int once, s3_resume; struct romstage_handoff *handoff; - handoff = cbmem_find(CBMEM_ID_ROMSTAGE_INFO); + if (once) + return s3_resume; + /* Only try evaluate handoff once for s3 resume state. */ + once = 1; + handoff = cbmem_find(CBMEM_ID_ROMSTAGE_INFO); if (handoff == NULL) return 0; - return handoff->s3_resume; + s3_resume = handoff->s3_resume; + if (s3_resume) + printk(BIOS_DEBUG, "S3 Resume\n"); + else + printk(BIOS_DEBUG, "Normal boot\n"); + + return s3_resume; } -- cgit v1.2.3