X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=drivers%2Facpi%2Fsleep%2Fmain.c;h=3279e72a94f81c0c532f72a9bd0284861a1ba345;hb=f79e3185dd0f8650022518d7624c876d8929061b;hp=56afb1c1a494b2040c3f26b65df4d8c2ed8a6272;hpb=8b8eb7d8cfc6cd95ed00cd58754e8493322505bd;p=cascardo%2Flinux.git diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c index 56afb1c1a494..3279e72a94f8 100644 --- a/drivers/acpi/sleep/main.c +++ b/drivers/acpi/sleep/main.c @@ -212,10 +212,26 @@ static void acpi_hibernation_finish(void) acpi_set_firmware_waking_vector((acpi_physical_address) 0); } +static int acpi_hibernation_pre_restore(void) +{ + acpi_status status; + + status = acpi_hw_disable_all_gpes(); + + return ACPI_SUCCESS(status) ? 0 : -EFAULT; +} + +static void acpi_hibernation_restore_cleanup(void) +{ + acpi_hw_enable_all_runtime_gpes(); +} + static struct hibernation_ops acpi_hibernation_ops = { .prepare = acpi_hibernation_prepare, .enter = acpi_hibernation_enter, .finish = acpi_hibernation_finish, + .pre_restore = acpi_hibernation_pre_restore, + .restore_cleanup = acpi_hibernation_restore_cleanup, }; #endif /* CONFIG_SOFTWARE_SUSPEND */