drm/radeon: Take all modeset locks for DP MST hotplug
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 9 Jul 2015 21:44:32 +0000 (23:44 +0200)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 15 Feb 2016 20:45:36 +0000 (15:45 -0500)
[ Upstream commit 2ee6bcdcfa4d8b56b20bc6308cd5f9bced5b5324 ]

Similar with the i915 take all modeset locks for mst hotplug. This is
needed to make sure radeon holds both mode_config.mutex and
mode_config.connection_mutex when updating the connector_list, which
is the new (interim) locking regime we want for that.

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/gpu/drm/radeon/radeon_dp_mst.c

index 4298613..c9ff4cf 100644 (file)
@@ -287,9 +287,9 @@ static struct drm_connector *radeon_dp_add_mst_connector(struct drm_dp_mst_topol
        drm_mode_connector_set_path_property(connector, pathprop);
        drm_reinit_primary_mode_group(dev);
 
-       mutex_lock(&dev->mode_config.mutex);
+       drm_modeset_lock_all(dev);
        radeon_fb_add_connector(rdev, connector);
-       mutex_unlock(&dev->mode_config.mutex);
+       drm_modeset_unlock_all(dev);
 
        drm_connector_register(connector);
        return connector;
@@ -304,12 +304,12 @@ static void radeon_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
 
        drm_connector_unregister(connector);
        /* need to nuke the connector */
-       mutex_lock(&dev->mode_config.mutex);
+       drm_modeset_lock_all(dev);
        /* dpms off */
        radeon_fb_remove_connector(rdev, connector);
 
        drm_connector_cleanup(connector);
-       mutex_unlock(&dev->mode_config.mutex);
+       drm_modeset_unlock_all(dev);
        drm_reinit_primary_mode_group(dev);