mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 13:23:35 -04:00
drm/msm/dpu: move vblank events to complete_commit()
We could get a vblank event racing with the current atomic commit, resulting in sending the pageflip event to userspace early, causing tearing. On the other hand, complete_commit() ensures that the pending flush is complete. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org>
This commit is contained in:
@@ -297,7 +297,6 @@ void dpu_crtc_vblank_callback(struct drm_crtc *crtc)
|
||||
dpu_crtc->vblank_cb_time = ktime_get();
|
||||
else
|
||||
dpu_crtc->vblank_cb_count++;
|
||||
_dpu_crtc_complete_flip(crtc);
|
||||
drm_crtc_handle_vblank(crtc);
|
||||
trace_dpu_crtc_vblank_cb(DRMID(crtc));
|
||||
}
|
||||
@@ -402,6 +401,7 @@ static void dpu_crtc_frame_event_cb(void *data, u32 event)
|
||||
void dpu_crtc_complete_commit(struct drm_crtc *crtc)
|
||||
{
|
||||
trace_dpu_crtc_complete_commit(DRMID(crtc));
|
||||
_dpu_crtc_complete_flip(crtc);
|
||||
}
|
||||
|
||||
static void _dpu_crtc_setup_lm_bounds(struct drm_crtc *crtc,
|
||||
|
||||
Reference in New Issue
Block a user