aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/1094-drm-amd-dal-Not-releasing-target-during-suspend.patch
blob: 41f42ce3c557e73d6a40a4ede7ea2fa5f94fceed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From 2b7af35e80372411f727915b0fc9964119628ce1 Mon Sep 17 00:00:00 2001
From: Zeyu Fan <Zeyu.Fan@amd.com>
Date: Thu, 19 May 2016 14:59:04 -0400
Subject: [PATCH 1094/1110] drm/amd/dal: Not releasing target during suspend.

Signed-off-by: Zeyu Fan <Zeyu.Fan@amd.com>
Acked-by: Jordan Lazare <Jordan.Lazare@amd.com>
Signed-off-by: Kalyan Alle <kalyan.alle@amd.com>
---
 drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c
index 6a002df..bfa9e75 100644
--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c
@@ -472,11 +472,8 @@ static int dm_suspend(void *handle)
 	drm_modeset_lock_all(adev->ddev);
 	drm_for_each_crtc(crtc, adev->ddev) {
 		struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc);
-		if (acrtc->target) {
+		if (acrtc->target)
 				drm_crtc_vblank_off(crtc);
-				dc_target_release(acrtc->target);
-				acrtc->target = NULL;
-			}
 	}
 	drm_modeset_unlock_all(adev->ddev);
 
@@ -652,6 +649,7 @@ int amdgpu_dm_display_resume(struct amdgpu_device *adev )
 	struct amdgpu_connector *aconnector;
 	struct drm_connector *connector;
 	int ret = 0;
+	struct drm_crtc *crtc;
 
 	/* program HPD filter */
 	dc_resume(dm->dc);
@@ -665,6 +663,14 @@ int amdgpu_dm_display_resume(struct amdgpu_device *adev )
 	 */
 	amdgpu_dm_irq_resume_early(adev);
 
+	drm_modeset_lock_all(ddev);
+	drm_for_each_crtc(crtc, ddev) {
+		struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc);
+		if (acrtc->target)
+				drm_crtc_vblank_on(crtc);
+	}
+	drm_modeset_unlock_all(ddev);
+
 	/* Do detection*/
 	list_for_each_entry(connector,
 			&ddev->mode_config.connector_list, head) {
-- 
2.7.4