ACPI spec 2.0b section 7.3.3 \GTS said: OSPM will set the sleep enable (SLP_EN) bit in PM1 control register immediately following the execution of _GTS control method without performing any other I/O or allowing any interrupt servicing. Currently, kernel do like below: _GTS ... device_suspend(state) .. acpi_enter_sleep_state(state)
Created attachment 1630 [details] a patch for fixing this issue just move _GTS to right place.
This may require more investigation. Apparently "Other" ACPI implementations do not do this, and they may never do this, regardless of what the spec says. Bob
perhaps we should make calling _GTS configurable then, in case it works on some BIOS and doesn't on others?
Unless this proves to be a problem on a particular machine, I would rather not change the code, especially since we believe that it currently behaves exactly the same as Windows.