From 34f226fa2643f1d2e6527ea4edb24947cfe1fb6a Mon Sep 17 00:00:00 2001 From: Robert Moore Date: Wed, 1 May 2013 13:03:08 -0700 Subject: [PATCH] Do not use extended sleep registers unless HW-reduced bit is set. Previous implementation incorrectly used the ACPI 5.0 extended sleep registers if they were simply populated. This caused problems on some non-HW-reduced machines. As per the ACPI spec, they should only be used if the HW-reduced bit is set. Lv Zheng, ACPICA BZ 1020. --- source/components/hardware/hwxfsleep.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source/components/hardware/hwxfsleep.c b/source/components/hardware/hwxfsleep.c index 45cd3725ae..b5ae313103 100644 --- a/source/components/hardware/hwxfsleep.c +++ b/source/components/hardware/hwxfsleep.c @@ -339,13 +339,14 @@ AcpiHwSleepDispatch ( #if (!ACPI_REDUCED_HARDWARE) - /* * If the Hardware Reduced flag is set (from the FADT), we must - * use the extended sleep registers + * use the extended sleep registers (FADT). Note: As per the ACPI + * specification, these extended registers are to be used for HW-reduced + * platforms only. They are not general-purpose replacements for the + * legacy PM register sleep support. */ - if (AcpiGbl_ReducedHardware || - AcpiGbl_FADT.SleepControl.Address) + if (AcpiGbl_ReducedHardware) { Status = SleepFunctions->ExtendedFunction (SleepState); }