Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ee6bcdc authored by Daniel Vetter's avatar Daniel Vetter
Browse files

drm/radeon: Take all modeset locks for DP MST hotplug



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: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
parent 8bb4da1d
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -286,9 +286,9 @@ static struct drm_connector *radeon_dp_add_mst_connector(struct drm_dp_mst_topol
	drm_mode_connector_set_path_property(connector, pathprop);
	drm_mode_connector_set_path_property(connector, pathprop);
	drm_reinit_primary_mode_group(dev);
	drm_reinit_primary_mode_group(dev);


	mutex_lock(&dev->mode_config.mutex);
	drm_modeset_lock_all(dev);
	radeon_fb_add_connector(rdev, connector);
	radeon_fb_add_connector(rdev, connector);
	mutex_unlock(&dev->mode_config.mutex);
	drm_modeset_unlock_all(dev);


	drm_connector_register(connector);
	drm_connector_register(connector);
	return connector;
	return connector;
@@ -303,12 +303,12 @@ static void radeon_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,


	drm_connector_unregister(connector);
	drm_connector_unregister(connector);
	/* need to nuke the connector */
	/* need to nuke the connector */
	mutex_lock(&dev->mode_config.mutex);
	drm_modeset_lock_all(dev);
	/* dpms off */
	/* dpms off */
	radeon_fb_remove_connector(rdev, connector);
	radeon_fb_remove_connector(rdev, connector);


	drm_connector_cleanup(connector);
	drm_connector_cleanup(connector);
	mutex_unlock(&dev->mode_config.mutex);
	drm_modeset_unlock_all(dev);
	drm_reinit_primary_mode_group(dev);
	drm_reinit_primary_mode_group(dev);