x86 / tboot / ACPI: Fail extended mode reduced hardware sleep
authorBen Guthro <benjamin.guthro@citrix.com>
Tue, 30 Jul 2013 13:22:37 +0000 (09:22 -0400)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 31 Jul 2013 12:25:51 +0000 (14:25 +0200)
Register for the extended sleep callback from ACPI.

As tboot currently does not support the reduced hardware sleep
interface, fail this extended sleep call.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Ben Guthro <benjamin.guthro@citrix.com>
Cc: tboot-devel@lists.sourceforge.net
Cc: Gang Wei <gang.wei@intel.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/x86/kernel/tboot.c

index addf7b5..91a4496 100644 (file)
@@ -301,6 +301,15 @@ static int tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control)
        return 0;
 }
 
+static int tboot_extended_sleep(u8 sleep_state, u32 val_a, u32 val_b)
+{
+       if (!tboot_enabled())
+               return 0;
+
+       pr_warning("tboot is not able to suspend on platforms with reduced hardware sleep (ACPIv5)");
+       return -ENODEV;
+}
+
 static atomic_t ap_wfs_count;
 
 static int tboot_wait_for_aps(int num_aps)
@@ -422,6 +431,7 @@ static __init int tboot_late_init(void)
 #endif
 
        acpi_os_set_prepare_sleep(&tboot_sleep);
+       acpi_os_set_prepare_extended_sleep(&tboot_extended_sleep);
        return 0;
 }