aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0524-drm-amd-dal-add-missed-mst-callback-implementation.patch
blob: a7bae91d5d63457ec48568c7360cefe21918077a (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
From 75cf587ebebb4387e355c6626a6c6b8e30e16477 Mon Sep 17 00:00:00 2001
From: Mykola Lysenko <Mykola.Lysenko@amd.com>
Date: Thu, 26 Nov 2015 18:40:13 +0800
Subject: [PATCH 0524/1110] drm/amd/dal: add missed mst callback implementation

Add new register_connector callback implementation

Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
---
 .../gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c  | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c
index 0838cca..a08468b 100644
--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -257,7 +257,6 @@ static struct drm_connector *dm_dp_add_mst_connector(struct drm_dp_mst_topology_
 {
 	struct amdgpu_connector *master = container_of(mgr, struct amdgpu_connector, mst_mgr);
 	struct drm_device *dev = master->base.dev;
-	struct amdgpu_device *adev = dev->dev_private;
 	struct amdgpu_connector *aconnector;
 	struct drm_connector *connector;
 
@@ -281,11 +280,6 @@ static struct drm_connector *dm_dp_add_mst_connector(struct drm_dp_mst_topology_
 	drm_object_attach_property(&connector->base, dev->mode_config.path_property, 0);
 	drm_mode_connector_set_path_property(connector, pathprop);
 
-	mutex_lock(&dev->mode_config.mutex);
-	drm_fb_helper_add_one_connector(&adev->mode_info.rfbdev->helper, connector);
-	mutex_unlock(&dev->mode_config.mutex);
-
-	drm_connector_register(connector);
 
 	DRM_DEBUG_KMS(":%d\n", connector->base.id);
 
@@ -323,10 +317,24 @@ static void dm_dp_mst_hotplug(struct drm_dp_mst_topology_mgr *mgr)
 	drm_kms_helper_hotplug_event(dev);
 }
 
+static void dm_dp_mst_register_connector(struct drm_connector *connector)
+{
+	struct drm_device *dev = connector->dev;
+	struct amdgpu_device *adev = dev->dev_private;
+
+	mutex_lock(&dev->mode_config.mutex);
+	drm_fb_helper_add_one_connector(&adev->mode_info.rfbdev->helper, connector);
+	mutex_unlock(&dev->mode_config.mutex);
+
+	drm_connector_register(connector);
+
+}
+
 struct drm_dp_mst_topology_cbs dm_mst_cbs = {
 	.add_connector = dm_dp_add_mst_connector,
 	.destroy_connector = dm_dp_destroy_mst_connector,
 	.hotplug = dm_dp_mst_hotplug,
+	.register_connector = dm_dp_mst_register_connector
 };
 
 void amdgpu_dm_initialize_mst_connector(
-- 
2.7.4