From 32ceed8f269e48d9d500ee2ec9ba5b3f4435285e Mon Sep 17 00:00:00 2001 From: Tristan Corrick Date: Fri, 30 Nov 2018 22:53:27 +1300 Subject: sb/intel/lynxpoint: Ensure the finalise handler is called The finalise handler is not called during S3 resume when using the `BS_PAYLOAD_BOOT` approach. So, adopt the `lpc_final` approach used by bd82x6x and others. Tested on an ASRock H81M-HDS. The finalise handler is now called on the normal boot path, and during S3 resume. Change-Id: I9766a8dcbcb38420e937c810d252fef071851e92 Signed-off-by: Tristan Corrick Reviewed-on: https://review.coreboot.org/c/29976 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- src/southbridge/intel/lynxpoint/lpc.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/southbridge/intel/lynxpoint/lpc.c') diff --git a/src/southbridge/intel/lynxpoint/lpc.c b/src/southbridge/intel/lynxpoint/lpc.c index ca850c0ae6..437db812af 100644 --- a/src/southbridge/intel/lynxpoint/lpc.c +++ b/src/southbridge/intel/lynxpoint/lpc.c @@ -967,6 +967,11 @@ static unsigned long southbridge_write_acpi_tables(struct device *device, return current; } +static void lpc_final(struct device *dev) +{ + if (acpi_is_wakeup_s3() || IS_ENABLED(CONFIG_INTEL_CHIPSET_LOCKDOWN)) + outb(APM_CNT_FINALIZE, APM_CNT); +} static struct pci_operations pci_ops = { .set_subsystem = set_subsystem, @@ -981,6 +986,7 @@ static struct device_operations device_ops = { .acpi_name = lpc_acpi_name, .write_acpi_tables = southbridge_write_acpi_tables, .init = lpc_init, + .final = lpc_final, .enable = pch_lpc_enable, .scan_bus = scan_lpc_bus, .ops_pci = &pci_ops, -- cgit v1.2.3