In function prepare_signaling, crtc check (c==0) is not related
with the next new_connector circle, maybe we can put the crtc
check just after the crtc circle and before new_connector circle.
This change is to make the code to run a bit first.

Signed-off-by: Bernard Zhao <bern...@vivo.com>
---
 drivers/gpu/drm/drm_atomic_uapi.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_uapi.c 
b/drivers/gpu/drm/drm_atomic_uapi.c
index 25c269bc4681..566110996474 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -1182,6 +1182,12 @@ static int prepare_signaling(struct drm_device *dev,
 
                c++;
        }
+       /*
+        * Having this flag means user mode pends on event which will never
+        * reach due to lack of at least one CRTC for signaling
+        */
+       if (c == 0 && (arg->flags & DRM_MODE_PAGE_FLIP_EVENT))
+               return -EINVAL;
 
        for_each_new_connector_in_state(state, conn, conn_state, i) {
                struct drm_writeback_connector *wb_conn;
@@ -1220,13 +1226,6 @@ static int prepare_signaling(struct drm_device *dev,
                conn_state->writeback_job->out_fence = fence;
        }
 
-       /*
-        * Having this flag means user mode pends on event which will never
-        * reach due to lack of at least one CRTC for signaling
-        */
-       if (c == 0 && (arg->flags & DRM_MODE_PAGE_FLIP_EVENT))
-               return -EINVAL;
-
        return 0;
 }
 
-- 
2.29.0

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

Reply via email to