aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0519-drm-amd-dal-Assign-stream-encoder-in-MST-use-case.patch
blob: 41a276a2a531d3ba612d022e1a3ce348258dc64a (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
From c6f35a4f48a647c5365293ae636c1ad5a122fb3b 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 0519/1110] drm/amd/dal: Assign stream encoder in MST use case.

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;
 }
-- 
2.7.4