From: Ville Syrjälä <ville.syrj...@linux.intel.com>

drm_atomic_helper_commit_duplicated_state() should only be called
resume/reset/load_detect paths where plane->old_fb should always be
NULL and plane->fb should be equal to the new_plane_state->fb.
Assert that is indeed the case.

Cc: martin.pe...@free.fr
Cc: ch...@chris-wilson.co.uk
Cc: Dave Airlie <airl...@gmail.com> (v1)
Cc: Maarten Lankhorst <maarten.lankho...@linux.intel.com>
Cc: Daniel Vetter <daniel.vet...@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/drm_atomic_helper.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index e9dff9c014df..879d01a3ed09 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -3103,8 +3103,13 @@ int drm_atomic_helper_commit_duplicated_state(struct 
drm_atomic_state *state,
 
        state->acquire_ctx = ctx;
 
-       for_each_new_plane_in_state(state, plane, new_plane_state, i)
+       for_each_new_plane_in_state(state, plane, new_plane_state, i) {
+               WARN_ON(plane->crtc != new_plane_state->crtc);
+               WARN_ON(plane->fb != new_plane_state->fb);
+               WARN_ON(plane->old_fb);
+
                state->planes[i].old_state = plane->state;
+       }
 
        for_each_new_crtc_in_state(state, crtc, new_crtc_state, i)
                state->crtcs[i].old_state = crtc->state;
-- 
2.16.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to