aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amdfalconx86/recipes-kernel/linux/files/0944-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch
blob: 6d97a903860849a914190e0a9afc1d1e04491074 (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
70
From c1d89c1cb963963fddbd5da96bbe76804673085f 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 0944/1050] 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.

Change-Id: I1c64ef0f56f703949de4ed64fb2e2214f95492a2
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 caa7368..e073f20 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
@@ -2114,6 +2114,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;
@@ -2159,7 +2161,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,
@@ -2203,12 +2204,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;
 		}
@@ -2226,8 +2222,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;
-- 
1.9.1