Don't call directly disable callback of plane helper, we need to
disconnect the plane from the fb and crtc after disable callback.

Signed-off-by: Joonyoung Shim <jy0922.shim at samsung.com>
---
 drivers/gpu/drm/exynos/exynos_drm_crtc.c    | 5 +----
 drivers/gpu/drm/exynos/exynos_drm_encoder.c | 2 +-
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c 
b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
index 519c569..50c830e 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
@@ -48,7 +48,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
 {
        struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
        struct drm_plane *plane;
-       int ret;

        if (!exynos_crtc->enabled)
                return;
@@ -69,9 +68,7 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
                if (plane->crtc != crtc)
                        continue;

-               ret = plane->funcs->disable_plane(plane);
-               if (ret)
-                       DRM_ERROR("Failed to disable plane %d\n", ret);
+               drm_plane_force_disable(plane);
        }
 }

diff --git a/drivers/gpu/drm/exynos/exynos_drm_encoder.c 
b/drivers/gpu/drm/exynos/exynos_drm_encoder.c
index 0648ba4..3ca266d 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_encoder.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_encoder.c
@@ -90,7 +90,7 @@ static void exynos_drm_encoder_disable(struct drm_encoder 
*encoder)
        /* all planes connected to this encoder should be also disabled. */
        drm_for_each_legacy_plane(plane, &dev->mode_config.plane_list) {
                if (plane->crtc && (plane->crtc == encoder->crtc))
-                       plane->funcs->disable_plane(plane);
+                       drm_plane_force_disable(plane);
        }
 }

-- 
1.9.1

Reply via email to