summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-02-13 12:17:04 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2018-02-13 12:17:04 -0800
commit3b67a3866b05a6c19626c3eb25a3009571bd2450 (patch)
tree7cbc4c9bd0ed9e2c53e881780bb0f7e29a05b447
parent9d5748ab14f720c4a6d1cc5e29ed8458f11df193 (diff)
parentfe9857b511f3a6ccd68f9a112886d7d6019e5e28 (diff)
Merge "DRM: SDE: Avoid vblank request to the same state"
-rw-r--r--drivers/gpu/drm/msm/sde/sde_crtc.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/gpu/drm/msm/sde/sde_crtc.c b/drivers/gpu/drm/msm/sde/sde_crtc.c
index 2a31bc7fedc7..3f5aa4d276c9 100644
--- a/drivers/gpu/drm/msm/sde/sde_crtc.c
+++ b/drivers/gpu/drm/msm/sde/sde_crtc.c
@@ -1190,7 +1190,7 @@ static void sde_crtc_disable(struct drm_crtc *crtc)
sde_crtc->vblank_requested) {
ret = _sde_crtc_vblank_enable_no_lock(sde_crtc, false);
if (ret)
- SDE_ERROR("%s vblank enable failed: %d\n",
+ SDE_ERROR("%s vblank disable failed: %d\n",
sde_crtc->name, ret);
}
@@ -1491,16 +1491,18 @@ int sde_crtc_vblank(struct drm_crtc *crtc, bool en)
sde_crtc = to_sde_crtc(crtc);
mutex_lock(&sde_crtc->crtc_lock);
- SDE_EVT32(DRMID(&sde_crtc->base), en, sde_crtc->enabled,
- sde_crtc->suspend, sde_crtc->vblank_requested);
- if (sde_crtc->enabled && !sde_crtc->suspend) {
- ret = _sde_crtc_vblank_enable_no_lock(sde_crtc, en);
- if (ret)
- SDE_ERROR("%s vblank enable failed: %d\n",
- sde_crtc->name, ret);
- }
+ if (sde_crtc->vblank_requested != en) {
+ SDE_EVT32(DRMID(&sde_crtc->base), en, sde_crtc->enabled,
+ sde_crtc->suspend, sde_crtc->vblank_requested);
+ if (sde_crtc->enabled && !sde_crtc->suspend) {
+ ret = _sde_crtc_vblank_enable_no_lock(sde_crtc, en);
+ if (ret)
+ SDE_ERROR("%s vblank enable failed: %d\n",
+ sde_crtc->name, ret);
+ }
- sde_crtc->vblank_requested = en;
+ sde_crtc->vblank_requested = en;
+ }
mutex_unlock(&sde_crtc->crtc_lock);
return 0;