From: Gustavo Padovan <gustavo.pado...@collabora.co.uk>

With atomic modesetting all the control for CRTC, Planes, Encoders and
Connectors should come from DRM core, so the driver is not allowed to
disable planes from inside the crtc_disable() call. This patch
removes this chainned calls from mixer code letting only DRM core touch
planes.

Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
---
 drivers/gpu/drm/exynos/exynos_mixer.c | 35 -----------------------------------
 1 file changed, 35 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
b/drivers/gpu/drm/exynos/exynos_mixer.c
index 6bab717..0e4d083 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -937,8 +937,6 @@ static void mixer_win_commit(struct exynos_drm_crtc *crtc, 
unsigned int win)
                vp_video_buffer(mixer_ctx, win);
        else
                mixer_graph_buffer(mixer_ctx, win);
-
-       mixer_ctx->planes[win].enabled = true;
 }

 static void mixer_win_disable(struct exynos_drm_crtc *crtc, unsigned int win)
@@ -952,7 +950,6 @@ static void mixer_win_disable(struct exynos_drm_crtc *crtc, 
unsigned int win)
        mutex_lock(&mixer_ctx->mixer_mutex);
        if (!mixer_ctx->powered) {
                mutex_unlock(&mixer_ctx->mixer_mutex);
-               mixer_ctx->planes[win].resume = false;
                return;
        }
        mutex_unlock(&mixer_ctx->mixer_mutex);
@@ -964,8 +961,6 @@ static void mixer_win_disable(struct exynos_drm_crtc *crtc, 
unsigned int win)

        mixer_vsync_set_update(mixer_ctx, true);
        spin_unlock_irqrestore(&res->reg_slock, flags);
-
-       mixer_ctx->planes[win].enabled = false;
 }

 static void mixer_wait_for_vblank(struct exynos_drm_crtc *crtc)
@@ -1000,33 +995,6 @@ static void mixer_wait_for_vblank(struct exynos_drm_crtc 
*crtc)
        drm_vblank_put(mixer_ctx->drm_dev, mixer_ctx->pipe);
 }

-static void mixer_window_suspend(struct mixer_context *ctx)
-{
-       struct exynos_drm_plane *plane;
-       int i;
-
-       for (i = 0; i < MIXER_WIN_NR; i++) {
-               plane = &ctx->planes[i];
-               plane->resume = plane->enabled;
-               mixer_win_disable(ctx->crtc, i);
-       }
-       mixer_wait_for_vblank(ctx->crtc);
-}
-
-static void mixer_window_resume(struct mixer_context *ctx)
-{
-       struct exynos_drm_plane *plane;
-       int i;
-
-       for (i = 0; i < MIXER_WIN_NR; i++) {
-               plane = &ctx->planes[i];
-               plane->enabled = plane->resume;
-               plane->resume = false;
-               if (plane->enabled)
-                       mixer_win_commit(ctx->crtc, i);
-       }
-}
-
 static void mixer_enable(struct exynos_drm_crtc *crtc)
 {
        struct mixer_context *ctx = crtc->ctx;
@@ -1058,8 +1026,6 @@ static void mixer_enable(struct exynos_drm_crtc *crtc)

        mixer_reg_write(res, MXR_INT_EN, ctx->int_en);
        mixer_win_reset(ctx);
-
-       mixer_window_resume(ctx);
 }

 static void mixer_disable(struct exynos_drm_crtc *crtc)
@@ -1076,7 +1042,6 @@ static void mixer_disable(struct exynos_drm_crtc *crtc)

        mixer_stop(ctx);
        mixer_regs_dump(ctx);
-       mixer_window_suspend(ctx);

        ctx->int_en = mixer_reg_read(res, MXR_INT_EN);

-- 
2.1.0

Reply via email to