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
|
From 241c93fd927bc959a80bddf085147356ff4f4ceb Mon Sep 17 00:00:00 2001
From: Eric Yang <eric.yang2@amd.com>
Date: Mon, 4 Apr 2016 10:57:43 -0400
Subject: [PATCH 1003/1110] drm/amd/dal: keep the old target if commit fail for
headless
Signed-off-by: Eric Yang <eric.yang2@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c
index a21d634..a091d97 100644
--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c
+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c
@@ -2363,6 +2363,7 @@ void dm_restore_drm_connector_state(struct drm_device *dev, struct drm_connector
struct amdgpu_crtc *disconnected_acrtc;
const struct dc_sink *sink;
struct dc_target *commit_targets[6];
+ struct dc_target *current_target;
uint32_t commit_targets_count = 0;
@@ -2394,7 +2395,8 @@ void dm_restore_drm_connector_state(struct drm_device *dev, struct drm_connector
*/
manage_dm_interrupts(adev, disconnected_acrtc, false);
/* this is the update mode case */
- dc_target_release(disconnected_acrtc->target);
+
+ current_target = disconnected_acrtc->target;
disconnected_acrtc->target = new_target;
disconnected_acrtc->enabled = true;
@@ -2416,11 +2418,12 @@ void dm_restore_drm_connector_state(struct drm_device *dev, struct drm_connector
commit_targets_count)) {
DRM_INFO("Failed to restore connector state!\n");
dc_target_release(disconnected_acrtc->target);
- disconnected_acrtc->target = NULL;
- disconnected_acrtc->enabled = false;
+ disconnected_acrtc->target = current_target;
+ manage_dm_interrupts(adev, disconnected_acrtc, true);
return;
}
+ dc_target_release(current_target);
dm_dc_surface_commit(dc, &disconnected_acrtc->base,
to_dm_connector_state(
--
2.7.4
|