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:
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.
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.