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/fc15e4ef745863e249f3a5a23b4b...
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