These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / acpi / sleep.c
index 2f0d4db..0d94621 100644 (file)
@@ -487,6 +487,8 @@ static int acpi_suspend_begin(suspend_state_t pm_state)
                pr_err("ACPI does not support sleep state S%u\n", acpi_state);
                return -ENOSYS;
        }
+       if (acpi_state > ACPI_STATE_S1)
+               pm_set_suspend_via_firmware();
 
        acpi_pm_start(acpi_state);
        return 0;
@@ -522,6 +524,7 @@ static int acpi_suspend_enter(suspend_state_t pm_state)
                if (error)
                        return error;
                pr_info(PREFIX "Low-level resume complete\n");
+               pm_set_resume_via_firmware();
                break;
        }
        trace_suspend_resume(TPS("acpi_suspend"), acpi_state, false);
@@ -632,14 +635,16 @@ static int acpi_freeze_prepare(void)
        acpi_enable_wakeup_devices(ACPI_STATE_S0);
        acpi_enable_all_wakeup_gpes();
        acpi_os_wait_events_complete();
-       enable_irq_wake(acpi_gbl_FADT.sci_interrupt);
+       if (acpi_sci_irq_valid())
+               enable_irq_wake(acpi_sci_irq);
        return 0;
 }
 
 static void acpi_freeze_restore(void)
 {
        acpi_disable_wakeup_devices(ACPI_STATE_S0);
-       disable_irq_wake(acpi_gbl_FADT.sci_interrupt);
+       if (acpi_sci_irq_valid())
+               disable_irq_wake(acpi_sci_irq);
        acpi_enable_all_runtime_gpes();
 }