Hello, The legacy_cursor_update flag in the drm_atomic_state struct was being used to track if the update was asyncronous or not for the cursor plane. Which is really similar to what the async_update flag do, so I was trying to get rid of the legacy_cursor_update flag (just for cleanup). So I did this patch: https://gitlab.collabora.com/koike/linux/commit/fc15e4ef745863e249f3a5a23b4ba2e1087045ea But, this doesn't work due to the change in drm_atomic_helper_setup_commit() function, It looks that it should work, because of the comment in this function: @@ -1957,7 +1953,7 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state, continue; } /* Legacy cursor updates are fully unsynced. */ //if (state->async_update) { // This doesn't work for some reason if (state->legacy_cursor_update) { complete_all(&commit->flip_done); continue; But it doesn't work when I have a case where legacy_cursor_update = true but async_update = false, so I was wondering, is there any difference between unsynced (as mentioned by the comment) and asyncronous ? I'm still trying to understand the code by myself, but any help would be appreciated. Thanks a lot Helen _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel