From fc56980d0419d2d462a3b584169469f0118809aa Mon Sep 17 00:00:00 2001
From: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
Date: Thu, 5 Jan 2017 11:24:31 -0500
Subject: [PATCH] drm/amd/display: Fix vblank IRQ refcount in DM.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Temporary fix follwoing the introduction of page_flip_target
hook in drm.

Change-Id: Iebb736fd861358cbf1ed4b0b37134dae1fd68c63
Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
index 1701a6393029f..09e705d37084f 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
@@ -1077,6 +1077,10 @@ static int amdgpu_atomic_helper_page_flip(struct drm_crtc *crtc,
 	if (!state)
 		return -ENOMEM;
 
+	ret = drm_crtc_vblank_get(crtc);
+	if (ret)
+		return ret;
+
 	state->acquire_ctx = drm_modeset_legacy_acquire_ctx(crtc);
 retry:
 	crtc_state = drm_atomic_get_crtc_state(state, crtc);
@@ -1116,6 +1120,9 @@ static int amdgpu_atomic_helper_page_flip(struct drm_crtc *crtc,
 	if (ret == -EDEADLK)
 		goto backoff;
 
+	if (ret)
+		drm_crtc_vblank_put(crtc);
+
 	drm_atomic_state_free(state);
 
 	return ret;