drm/exynos/dsi: unregister connector on removal
authorAndrzej Hajda <a.hajda@samsung.com>
Tue, 9 Sep 2014 13:16:10 +0000 (15:16 +0200)
committerInki Dae <daeinki@gmail.com>
Fri, 19 Sep 2014 15:56:15 +0000 (00:56 +0900)
During component unbind connector should be unregistered.
Also DSI host should be unregistered after KMS cleanup.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_dsi.c

index 0065a5a8c78635fe0c9cfbfc3bb29f37773b5f80..24741d8758e88521439f82309b656c35afa83785 100644 (file)
@@ -1441,6 +1441,9 @@ exynos_dsi_detect(struct drm_connector *connector, bool force)
 
 static void exynos_dsi_connector_destroy(struct drm_connector *connector)
 {
+       drm_connector_unregister(connector);
+       drm_connector_cleanup(connector);
+       connector->dev = NULL;
 }
 
 static struct drm_connector_funcs exynos_dsi_connector_funcs = {
@@ -1661,10 +1664,10 @@ static void exynos_dsi_unbind(struct device *dev, struct device *master,
 
        exynos_dsi_dpms(&exynos_dsi_display, DRM_MODE_DPMS_OFF);
 
-       mipi_dsi_host_unregister(&dsi->dsi_host);
-
+       exynos_dsi_connector_destroy(&dsi->connector);
        encoder->funcs->destroy(encoder);
-       drm_connector_cleanup(&dsi->connector);
+
+       mipi_dsi_host_unregister(&dsi->dsi_host);
 }
 
 static const struct component_ops exynos_dsi_component_ops = {