static int exynos_dsi_bind(struct device *dev, struct device *master,
                                void *data)
 {
-       struct drm_encoder *encoder = dev_get_drvdata(dev);
-       struct exynos_dsi *dsi = encoder_to_dsi(encoder);
+       struct exynos_dsi *dsi = dev_get_drvdata(dev);
+       struct drm_encoder *encoder = &dsi->encoder;
        struct drm_device *drm_dev = data;
        struct device_node *in_bridge_node;
        struct drm_bridge *in_bridge;
 static void exynos_dsi_unbind(struct device *dev, struct device *master,
                                void *data)
 {
-       struct drm_encoder *encoder = dev_get_drvdata(dev);
-       struct exynos_dsi *dsi = encoder_to_dsi(encoder);
+       struct exynos_dsi *dsi = dev_get_drvdata(dev);
+       struct drm_encoder *encoder = &dsi->encoder;
 
        exynos_dsi_disable(encoder);
 
        if (ret)
                return ret;
 
-       platform_set_drvdata(pdev, &dsi->encoder);
+       platform_set_drvdata(pdev, dsi);
 
        pm_runtime_enable(dev);
 
 
 static int __maybe_unused exynos_dsi_suspend(struct device *dev)
 {
-       struct drm_encoder *encoder = dev_get_drvdata(dev);
-       struct exynos_dsi *dsi = encoder_to_dsi(encoder);
+       struct exynos_dsi *dsi = dev_get_drvdata(dev);
        const struct exynos_dsi_driver_data *driver_data = dsi->driver_data;
        int ret, i;
 
 
 static int __maybe_unused exynos_dsi_resume(struct device *dev)
 {
-       struct drm_encoder *encoder = dev_get_drvdata(dev);
-       struct exynos_dsi *dsi = encoder_to_dsi(encoder);
+       struct exynos_dsi *dsi = dev_get_drvdata(dev);
        const struct exynos_dsi_driver_data *driver_data = dsi->driver_data;
        int ret, i;