drivers/intel/gma/acpi: Add power management methods for GFX0

Add ACPI power state methods (_PS0, _PS3, _S0W, _S3D) to the GFX0
device definition to fix VIDEO_TDR_FAILURE 0x116 errors when
resuming from S3 sleep under Windows on modern Intel platforms
(TGL and newer).

Windows requires these methods to properly manage GPU power states
during sleep/resume cycles. Without them, Windows cannot determine
the correct power state transitions, leading to display driver
timeouts on resume.

The methods are implemented as no-ops since integrated graphics
power is managed by the platform, but Windows needs the method
definitions to properly initialize and restore the GPU after S3
resume.

TEST=build/boot starlabs/starlite_adl, verify S3 resume from
Windows works properly without a VIDEO_TDR_FAILURE BSOD.

Change-Id: Ib3f8060dee3281c2281d4e719be9aff9e0239b49
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90013
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Matt DeVillier 2025-11-12 14:18:48 -06:00
commit c197643d44

View file

@ -3,4 +3,34 @@
Device (GFX0)
{
Name (_ADR, 0x00020000)
/*
* Power state methods required for proper S3 resume support.
* Windows needs these to properly manage GPU power states during
* sleep/resume cycles.
*/
/* Power state D0 (fully on) - called when device is powered on */
Method (_PS0, 0, NotSerialized)
{
/* Integrated graphics power is managed by the platform */
}
/* Power state D3 (off) - called when device is powered off */
Method (_PS3, 0, NotSerialized)
{
/* Integrated graphics power is managed by the platform */
}
/* Deepest sleep state from S0 - D3hot */
Method (_S0W, 0x0, NotSerialized)
{
Return (0x03) /* D3hot */
}
/* Deepest sleep state from S3 - D3hot */
Method (_S3D, 0x0, NotSerialized)
{
Return (0x03) /* D3hot - device can enter D3hot during S3 */
}
}