aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0783-drm-amd-dal-Add-set_blender_mode-handling-for-underl.patch
blob: 0bf731a400b6e9052c5d54b026c7564fa26dac5b (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
71
72
73
74
75
76
77
78
79
From 3a72181cdcda5e7219cf6d0a4ef5f588f3848ed5 Mon Sep 17 00:00:00 2001
From: Eric Yang <eric.yang2@amd.com>
Date: Mon, 8 Feb 2016 14:36:05 -0500
Subject: [PATCH 0783/1110] drm/amd/dal: Add set_blender_mode handling for
 underlay pipe

Signed-off-by: Eric Yang <eric.yang2@amd.com>
Acked-by: Jordan Lazare <Jordan.Lazare@amd.com>
---
 .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c    | 44 ++++++++++++++++------
 1 file changed, 32 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
index bacf88d..754e81d 100644
--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
@@ -351,7 +351,7 @@ static void dce110_set_blender_mode(
 	uint32_t mode)
 {
 	uint32_t value;
-	uint32_t addr = HW_REG_BLND(mmBLND_CONTROL, controller_id);
+	uint32_t addr = 0;
 	uint32_t blnd_mode;
 	uint32_t feedthrough = 0;
 
@@ -371,19 +371,39 @@ static void dce110_set_blender_mode(
 		break;
 	}
 
-	value = dm_read_reg(ctx, addr);
+	if (controller_id == CONTROLLER_ID_UNDERLAY0) {
+		addr = mmBLNDV_CONTROL;
+		value = dm_read_reg(ctx, addr);
 
-	set_reg_field_value(
-		value,
-		feedthrough,
-		BLND_CONTROL,
-		BLND_FEEDTHROUGH_EN);
+			set_reg_field_value(
+				value,
+				feedthrough,
+				BLNDV_CONTROL,
+				BLND_FEEDTHROUGH_EN);
 
-	set_reg_field_value(
-		value,
-		blnd_mode,
-		BLND_CONTROL,
-		BLND_MODE);
+			set_reg_field_value(
+				value,
+				blnd_mode,
+				BLNDV_CONTROL,
+				BLND_MODE);
+
+
+	} else {
+		addr = HW_REG_BLND(mmBLND_CONTROL, controller_id);
+		value = dm_read_reg(ctx, addr);
+
+		set_reg_field_value(
+			value,
+			feedthrough,
+			BLND_CONTROL,
+			BLND_FEEDTHROUGH_EN);
+
+		set_reg_field_value(
+			value,
+			blnd_mode,
+			BLND_CONTROL,
+			BLND_MODE);
+	}
 
 	dm_write_reg(ctx, addr, value);
 }
-- 
2.7.4