|
@@ -662,40 +662,14 @@ static int acpi_freeze_prepare(void)
|
|
|
acpi_os_wait_events_complete();
|
|
|
if (acpi_sci_irq_valid())
|
|
|
enable_irq_wake(acpi_sci_irq);
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static void acpi_freeze_wake(void)
|
|
|
-{
|
|
|
- /*
|
|
|
- * If IRQD_WAKEUP_ARMED is not set for the SCI at this point, it means
|
|
|
- * that the SCI has triggered while suspended, so cancel the wakeup in
|
|
|
- * case it has not been a wakeup event (the GPEs will be checked later).
|
|
|
- */
|
|
|
- if (acpi_sci_irq_valid() &&
|
|
|
- !irqd_is_wakeup_armed(irq_get_irq_data(acpi_sci_irq)))
|
|
|
- pm_system_cancel_wakeup();
|
|
|
-}
|
|
|
-
|
|
|
-static void acpi_freeze_sync(void)
|
|
|
-{
|
|
|
- /*
|
|
|
- * Process all pending events in case there are any wakeup ones.
|
|
|
- *
|
|
|
- * The EC driver uses the system workqueue, so that one needs to be
|
|
|
- * flushed too.
|
|
|
- */
|
|
|
- acpi_os_wait_events_complete();
|
|
|
- flush_scheduled_work();
|
|
|
-}
|
|
|
-
|
|
|
static void acpi_freeze_restore(void)
|
|
|
{
|
|
|
acpi_disable_wakeup_devices(ACPI_STATE_S0);
|
|
|
if (acpi_sci_irq_valid())
|
|
|
disable_irq_wake(acpi_sci_irq);
|
|
|
-
|
|
|
acpi_enable_all_runtime_gpes();
|
|
|
}
|
|
|
|
|
@@ -707,8 +681,6 @@ static void acpi_freeze_end(void)
|
|
|
static const struct platform_freeze_ops acpi_freeze_ops = {
|
|
|
.begin = acpi_freeze_begin,
|
|
|
.prepare = acpi_freeze_prepare,
|
|
|
- .wake = acpi_freeze_wake,
|
|
|
- .sync = acpi_freeze_sync,
|
|
|
.restore = acpi_freeze_restore,
|
|
|
.end = acpi_freeze_end,
|
|
|
};
|