|
@@ -272,7 +272,7 @@ static void tboot_copy_fadt(const struct acpi_table_fadt *fadt)
|
|
|
offsetof(struct acpi_table_facs, firmware_waking_vector);
|
|
|
}
|
|
|
|
|
|
-void tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control)
|
|
|
+static int tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control)
|
|
|
{
|
|
|
static u32 acpi_shutdown_map[ACPI_S_STATE_COUNT] = {
|
|
|
/* S0,1,2: */ -1, -1, -1,
|
|
@@ -281,7 +281,7 @@ void tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control)
|
|
|
/* S5: */ TB_SHUTDOWN_S5 };
|
|
|
|
|
|
if (!tboot_enabled())
|
|
|
- return;
|
|
|
+ return 0;
|
|
|
|
|
|
tboot_copy_fadt(&acpi_gbl_FADT);
|
|
|
tboot->acpi_sinfo.pm1a_cnt_val = pm1a_control;
|
|
@@ -292,10 +292,11 @@ void tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control)
|
|
|
if (sleep_state >= ACPI_S_STATE_COUNT ||
|
|
|
acpi_shutdown_map[sleep_state] == -1) {
|
|
|
pr_warning("unsupported sleep state 0x%x\n", sleep_state);
|
|
|
- return;
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
tboot_shutdown(acpi_shutdown_map[sleep_state]);
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static atomic_t ap_wfs_count;
|
|
@@ -345,6 +346,8 @@ static __init int tboot_late_init(void)
|
|
|
|
|
|
atomic_set(&ap_wfs_count, 0);
|
|
|
register_hotcpu_notifier(&tboot_cpu_notifier);
|
|
|
+
|
|
|
+ acpi_os_set_prepare_sleep(&tboot_sleep);
|
|
|
return 0;
|
|
|
}
|
|
|
|