From 2d1980b2b3a05da3634c45cae81085975176d501 Mon Sep 17 00:00:00 2001 From: Raviteja Tamatam Date: Fri, 27 Mar 2020 02:27:26 +0530 Subject: [PATCH] disp: msm: sde: avoid drm_crtc_vblank_on during seamless transition When there is a race condition between DMS seamless transition and drm_wait_vblank_ioctl, the latter gets deregistered for vblank handle as drm_crtc_vblank_on call in crtc enbale increments vblank count. This change avoids drm_crtc_vblank_on call during seamless transition when crtc is already enabled as it is not required. Change-Id: I0b9327a98cef00405b5b94e24a3fd15205339cfc Signed-off-by: Raviteja Tamatam --- msm/sde/sde_crtc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/msm/sde/sde_crtc.c b/msm/sde/sde_crtc.c index 83a7bbef..a8e0b93a 100644 --- a/msm/sde/sde_crtc.c +++ b/msm/sde/sde_crtc.c @@ -4103,7 +4103,12 @@ static void sde_crtc_enable(struct drm_crtc *crtc, SDE_EVT32_VERBOSE(DRMID(crtc)); sde_crtc = to_sde_crtc(crtc); - drm_crtc_vblank_on(crtc); + /* + * Avoid drm_crtc_vblank_on during seamless DMS case + * when CRTC is already in enabled state + */ + if (!sde_crtc->enabled) + drm_crtc_vblank_on(crtc); mutex_lock(&sde_crtc->crtc_lock); SDE_EVT32(DRMID(crtc), sde_crtc->enabled);