aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0608-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch
blob: 405de58413ead668a0f1a32be2f109f25edecdbf (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
From 5e17c458aedbc2ac66c987e2dda38e9321d2a6cc Mon Sep 17 00:00:00 2001
From: Mykola Lysenko <Mykola.Lysenko@amd.com>
Date: Thu, 10 Dec 2015 20:17:56 +0800
Subject: [PATCH 0608/1110] drm/amd/dal: use DRM helper to update legacy state

Although legacy state of DRM objects (e.g. crtc, connector etc.)
should not be used by atomic code, DRM code still uses it to report
information to userspace.

Previously part of legacy state was updated by amdgpu atomic_commit.
It was found that dpms state was not updated, and drm provides helper
function to update legacy state.

This change removes amdgpu atomic_commit code to update state and
start to use DRM helper function for this.

Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Acked-by: Harry Wentland<harry.wentland@amd.com>
---
 drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 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 45a2a68..a9ff09d 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
@@ -2113,6 +2113,8 @@ int amdgpu_dm_atomic_commit(
 	 * wait_for_fences(dev, state);
 	 */
 
+	drm_atomic_helper_update_legacy_modeset_state(dev, state);
+
 	/* update changed items */
 	for_each_crtc_in_state(state, crtc, old_crtc_state, i) {
 		struct amdgpu_crtc *acrtc;
@@ -2158,7 +2160,6 @@ int amdgpu_dm_atomic_commit(
 		switch (action) {
 		case DM_COMMIT_ACTION_DPMS_ON:
 		case DM_COMMIT_ACTION_SET: {
-			const struct drm_connector_helper_funcs *connector_funcs;
 			struct dc_target *new_target =
 				create_target_for_sink(
 					aconnector,
@@ -2202,12 +2203,7 @@ int amdgpu_dm_atomic_commit(
 
 			acrtc->target = new_target;
 			acrtc->enabled = true;
-			acrtc->base.enabled = true;
 
-			connector_funcs = aconnector->base.helper_private;
-			aconnector->base.encoder =
-				connector_funcs->best_encoder(
-					&aconnector->base);
 			down(&aconnector->mst_sem);
 			break;
 		}
@@ -2225,8 +2221,7 @@ int amdgpu_dm_atomic_commit(
 				dc_target_release(acrtc->target);
 				acrtc->target = NULL;
 				acrtc->enabled = false;
-				acrtc->base.enabled = false;
-				aconnector->base.encoder = NULL;
+
 				up(&aconnector->mst_sem);
 			}
 			break;
-- 
2.7.4