Commit 669c9215afea ("drm/atomic: Make async plane update checks work as
intended, v2.") forced planes to always be tracked, but forgot to
explicitly get the crtc commit from the new crtc when available.

This broke plane commit tracking, and caused kms_atomic_transitions
to randomly fail with -EBUSY.

Signed-off-by: Maarten Lankhorst <maarten.lankho...@linux.intel.com>
Fixes: 669c9215afea ("drm/atomic: Make async plane update checks work as 
intended, v2.")
Cc: Gustavo Padovan <gustavo.pado...@collabora.com>
Cc: Daniel Vetter <daniel.vet...@ffwll.ch>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102671
Testcase: kms_atomic_transitions
---
 drivers/gpu/drm/drm_atomic_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index d59441f1dcd4..b64c8f5bc940 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1804,7 +1804,7 @@ int drm_atomic_helper_setup_commit(struct 
drm_atomic_state *state,
                    
!try_wait_for_completion(&old_plane_state->commit->flip_done))
                        return -EBUSY;
 
-               commit = crtc_or_fake_commit(state, old_plane_state->crtc);
+               commit = crtc_or_fake_commit(state, old_plane_state->crtc ?: 
new_plane_state->crtc);
                if (!commit)
                        return -ENOMEM;
 
-- 
2.14.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to