diff options
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/tboot.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c index e2410e27f97e..6410744ac5cb 100644 --- a/arch/x86/kernel/tboot.c +++ b/arch/x86/kernel/tboot.c | |||
@@ -272,7 +272,7 @@ static void tboot_copy_fadt(const struct acpi_table_fadt *fadt) | |||
272 | offsetof(struct acpi_table_facs, firmware_waking_vector); | 272 | offsetof(struct acpi_table_facs, firmware_waking_vector); |
273 | } | 273 | } |
274 | 274 | ||
275 | void tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control) | 275 | static int tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control) |
276 | { | 276 | { |
277 | static u32 acpi_shutdown_map[ACPI_S_STATE_COUNT] = { | 277 | static u32 acpi_shutdown_map[ACPI_S_STATE_COUNT] = { |
278 | /* S0,1,2: */ -1, -1, -1, | 278 | /* S0,1,2: */ -1, -1, -1, |
@@ -281,7 +281,7 @@ void tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control) | |||
281 | /* S5: */ TB_SHUTDOWN_S5 }; | 281 | /* S5: */ TB_SHUTDOWN_S5 }; |
282 | 282 | ||
283 | if (!tboot_enabled()) | 283 | if (!tboot_enabled()) |
284 | return; | 284 | return 0; |
285 | 285 | ||
286 | tboot_copy_fadt(&acpi_gbl_FADT); | 286 | tboot_copy_fadt(&acpi_gbl_FADT); |
287 | tboot->acpi_sinfo.pm1a_cnt_val = pm1a_control; | 287 | tboot->acpi_sinfo.pm1a_cnt_val = pm1a_control; |
@@ -292,10 +292,11 @@ void tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control) | |||
292 | if (sleep_state >= ACPI_S_STATE_COUNT || | 292 | if (sleep_state >= ACPI_S_STATE_COUNT || |
293 | acpi_shutdown_map[sleep_state] == -1) { | 293 | acpi_shutdown_map[sleep_state] == -1) { |
294 | pr_warning("unsupported sleep state 0x%x\n", sleep_state); | 294 | pr_warning("unsupported sleep state 0x%x\n", sleep_state); |
295 | return; | 295 | return -1; |
296 | } | 296 | } |
297 | 297 | ||
298 | tboot_shutdown(acpi_shutdown_map[sleep_state]); | 298 | tboot_shutdown(acpi_shutdown_map[sleep_state]); |
299 | return 0; | ||
299 | } | 300 | } |
300 | 301 | ||
301 | static atomic_t ap_wfs_count; | 302 | static atomic_t ap_wfs_count; |
@@ -345,6 +346,8 @@ static __init int tboot_late_init(void) | |||
345 | 346 | ||
346 | atomic_set(&ap_wfs_count, 0); | 347 | atomic_set(&ap_wfs_count, 0); |
347 | register_hotcpu_notifier(&tboot_cpu_notifier); | 348 | register_hotcpu_notifier(&tboot_cpu_notifier); |
349 | |||
350 | acpi_os_set_prepare_sleep(&tboot_sleep); | ||
348 | return 0; | 351 | return 0; |
349 | } | 352 | } |
350 | 353 | ||