Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amd/display: Restore 5s vbl offdelay for NV3x+ DGPUs

[Why]

Rapid vblank off is causing flip-done timeouts for NV3x and newer
family of GPUs that support more idle optimization features.

A proper fix requires further investigation. In lieu of it, let's
workaround it for now.

[How]

For NV3x and newer family of DGPUs, restore the old 5s vblank off timer.

Fixes: 9b47278cec98 ("drm/amd/display: temp w/a for dGPU to enter idle optimizations")
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3787
Link: https://lore.kernel.org/amd-gfx/20260217191632.1243826-1-sysdadmin@m1k.cloud/
Tested-by: Michele Palazzi <sysdadmin@m1k.cloud>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit df482c2d441b090161633566b7a0755f1bbd55c2)

authored by

Leo Li and committed by
Alex Deucher
a1fc7bf6 65bce27e

+15 -3
+15 -3
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
··· 9408 9408 if (acrtc_state) { 9409 9409 timing = &acrtc_state->stream->timing; 9410 9410 9411 - if (amdgpu_ip_version(adev, DCE_HWIP, 0) < 9412 - IP_VERSION(3, 5, 0) || 9413 - !(adev->flags & AMD_IS_APU)) { 9411 + if (amdgpu_ip_version(adev, DCE_HWIP, 0) >= 9412 + IP_VERSION(3, 2, 0) && 9413 + !(adev->flags & AMD_IS_APU)) { 9414 + /* 9415 + * DGPUs NV3x and newer that support idle optimizations 9416 + * experience intermittent flip-done timeouts on cursor 9417 + * updates. Restore 5s offdelay behavior for now. 9418 + * 9419 + * Discussion on the issue: 9420 + * https://lore.kernel.org/amd-gfx/20260217191632.1243826-1-sysdadmin@m1k.cloud/ 9421 + */ 9422 + config.offdelay_ms = 5000; 9423 + config.disable_immediate = false; 9424 + } else if (amdgpu_ip_version(adev, DCE_HWIP, 0) < 9425 + IP_VERSION(3, 5, 0)) { 9414 9426 /* 9415 9427 * Older HW and DGPU have issues with instant off; 9416 9428 * use a 2 frame offdelay.