From: Jerry Zuo <Jerry.Zuo@amd.com>
Date: Thu, 28 Sep 2017 16:58:32 -0400
Subject: drm/amd/display: Remove drm_modeset_lock in MST code
Git-commit: 365c7c975dcd1a2158ed33dab76c1d308f9f9906
Patch-mainline: v4.15-rc1
References: FATE#326289 FATE#326079 FATE#326049 FATE#322398 FATE#326166
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>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
--- 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
@@ -287,9 +287,10 @@ dm_dp_add_mst_connector(struct drm_dp_ms
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) {
@@ -299,11 +300,11 @@ dm_dp_add_mst_connector(struct drm_dp_ms
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)
@@ -398,14 +399,11 @@ static void dm_dp_mst_register_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);
}