aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0826-drm-amd-dal-Assign-stream-encoder-in-MST-use-case.patch
blob: aedbfcf963721e62db44d9f27baa3dc15f198fbf (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
From 8d6b04d3042b8beebddb884e4c9396145d300ac1 Mon Sep 17 00:00:00 2001
From: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
Date: Tue, 24 Nov 2015 17:44:52 -0500
Subject: [PATCH 0826/1050] drm/amd/dal: Assign stream encoder in MST use case.

Change-Id: I984079ede44f9f4a12d8690627221245a918a2bd
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
---
 drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c
index d2594a9..fb3f5be 100644
--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c
+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c
@@ -784,17 +784,25 @@ static struct stream_encoder *find_first_free_match_stream_enc_for_link(
 		struct core_link *link)
 {
 	uint8_t i;
+	int8_t j = -1;
 
 	for (i = 0; i < res_ctx->pool.stream_enc_count; i++) {
 		if (!res_ctx->is_stream_enc_acquired[i] &&
-				res_ctx->pool.stream_enc[i]) {
+					res_ctx->pool.stream_enc[i]) {
+			/* Store first available for MST second display
+			 * in daisy chain use case */
+			j = i;
 			if (res_ctx->pool.stream_enc[i]->id ==
 					link->link_enc->preferred_engine)
 				return res_ctx->pool.stream_enc[i];
 		}
 	}
 
-	/* TODO: Handle MST*/
+	/* TODO: Handle MST properly
+	 * Currently pick next available stream encoder if found*/
+	if (j >= 0 && link->public.sink[0]->sink_signal ==
+			SIGNAL_TYPE_DISPLAY_PORT_MST)
+		return res_ctx->pool.stream_enc[j];
 
 	return NULL;
 }
-- 
1.9.1