manager_ops->commit(manager->dev);
 }
 
+static void exynos_drm_encoder_disable(struct drm_encoder *encoder)
+{
+       struct drm_plane *plane;
+       struct drm_device *dev = encoder->dev;
+
+       exynos_drm_encoder_dpms(encoder, DRM_MODE_DPMS_OFF);
+
+       /* all planes connected to this encoder should be also disabled. */
+       list_for_each_entry(plane, &dev->mode_config.plane_list, head) {
+               if (plane->crtc == encoder->crtc)
+                       plane->funcs->disable_plane(plane);
+       }
+}
+
 static struct drm_encoder_helper_funcs exynos_encoder_helper_funcs = {
        .dpms           = exynos_drm_encoder_dpms,
        .mode_fixup     = exynos_drm_encoder_mode_fixup,
        .mode_set       = exynos_drm_encoder_mode_set,
        .prepare        = exynos_drm_encoder_prepare,
        .commit         = exynos_drm_encoder_commit,
+       .disable        = exynos_drm_encoder_disable,
 };
 
 static void exynos_drm_encoder_destroy(struct drm_encoder *encoder)