aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2528-drm-amd-display-Remove-drm_modeset_lock-in-MST-code.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2528-drm-amd-display-Remove-drm_modeset_lock-in-MST-code.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2528-drm-amd-display-Remove-drm_modeset_lock-in-MST-code.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2528-drm-amd-display-Remove-drm_modeset_lock-in-MST-code.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2528-drm-amd-display-Remove-drm_modeset_lock-in-MST-code.patch
new file mode 100644
index 00000000..815f0159
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2528-drm-amd-display-Remove-drm_modeset_lock-in-MST-code.patch
@@ -0,0 +1,65 @@
+From a17328925ab2eb849e2396f1cd8444b5fab66232 Mon Sep 17 00:00:00 2001
+From: Jerry Zuo <Jerry.Zuo@amd.com>
+Date: Thu, 28 Sep 2017 16:58:32 -0400
+Subject: [PATCH 2528/4131] drm/amd/display: Remove drm_modeset_lock in MST
+ code
+
+Locks are no longer needed since the drm framework takes care of
+correct locking.
+
+Signed-off-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Jerry Zuo <Jerry.Zuo@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+index 1c2f07a..5088115 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+@@ -289,9 +289,10 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
+ struct amdgpu_device *adev = dev->dev_private;
+ struct amdgpu_dm_connector *aconnector;
+ struct drm_connector *connector;
++ struct drm_connector_list_iter conn_iter;
+
+- drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
+- list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
++ drm_connector_list_iter_begin(dev, &conn_iter);
++ drm_for_each_connector_iter(connector, &conn_iter) {
+ aconnector = to_amdgpu_dm_connector(connector);
+ if (aconnector->mst_port == master
+ && !aconnector->port) {
+@@ -301,11 +302,11 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
+ aconnector->port = port;
+ drm_mode_connector_set_path_property(connector, pathprop);
+
+- drm_modeset_unlock(&dev->mode_config.connection_mutex);
++ drm_connector_list_iter_end(&conn_iter);
+ return &aconnector->base;
+ }
+ }
+- drm_modeset_unlock(&dev->mode_config.connection_mutex);
++ drm_connector_list_iter_end(&conn_iter);
+
+ aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
+ if (!aconnector)
+@@ -400,14 +401,11 @@ static void dm_dp_mst_register_connector(struct drm_connector *connector)
+ struct drm_device *dev = connector->dev;
+ struct amdgpu_device *adev = dev->dev_private;
+
+- drm_modeset_lock_all(dev);
+ if (adev->mode_info.rfbdev)
+ drm_fb_helper_add_one_connector(&adev->mode_info.rfbdev->helper, connector);
+ else
+ DRM_ERROR("adev->mode_info.rfbdev is NULL\n");
+
+- drm_modeset_unlock_all(dev);
+-
+ drm_connector_register(connector);
+
+ }
+--
+2.7.4
+