aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_crtc.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-06-15 08:17:49 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-06-17 03:43:39 -0400
commit80de34611af6f123937a40ea17c8db792d38baba (patch)
treee0427f6e82c697d9e209a72ffd1f35e212a37a9b /drivers/gpu/drm/drm_crtc.c
parent40daac6136948dc83c1dec14fe4a2444915b22df (diff)
drm: Automatically unregister the connector during cleanup
As we now can call drm_connector_unregister() multiple times, provide a failsafe unregister for a connector when cleaning it up. v2: Add a WARN to catch any connectors that are still visible to userspace when we come to destoy them. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Dave Airlie <airlied@redhat.com> Cc: dri-devel@lists.freedesktop.org Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1465993109-19523-5-git-send-email-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/drm_crtc.c')
-rw-r--r--drivers/gpu/drm/drm_crtc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index ea5ec641eacc..316dea9bea08 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -938,6 +938,12 @@ void drm_connector_cleanup(struct drm_connector *connector)
938 struct drm_device *dev = connector->dev; 938 struct drm_device *dev = connector->dev;
939 struct drm_display_mode *mode, *t; 939 struct drm_display_mode *mode, *t;
940 940
941 /* The connector should have been removed from userspace long before
942 * it is finally destroyed.
943 */
944 if (WARN_ON(connector->registered))
945 drm_connector_unregister(connector);
946
941 if (connector->tile_group) { 947 if (connector->tile_group) {
942 drm_mode_put_tile_group(dev, connector->tile_group); 948 drm_mode_put_tile_group(dev, connector->tile_group);
943 connector->tile_group = NULL; 949 connector->tile_group = NULL;