decon_clear_channels() and decon_wait_for_vblank() accept a pointer to
struct exynos_drm_crtc. However, these functions are called when the
crtc is still uninitialized. Moreover, both functions use the pointer to
retrieve and use struct decon_context, which is initialized.

Modify the functions to accept a pointer to struct decon_context
instead.

Signed-off-by: Kaustabh Chakraborty <kauschl...@disroot.org>
---
 drivers/gpu/drm/exynos/exynos7_drm_decon.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c 
b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
index 0d185c0564b9..e994779694f0 100644
--- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -81,10 +81,8 @@ static const enum drm_plane_type decon_win_types[WINDOWS_NR] 
= {
        DRM_PLANE_TYPE_CURSOR,
 };
 
-static void decon_wait_for_vblank(struct exynos_drm_crtc *crtc)
+static void decon_wait_for_vblank(struct decon_context *ctx)
 {
-       struct decon_context *ctx = crtc->ctx;
-
        if (ctx->suspended)
                return;
 
@@ -100,9 +98,8 @@ static void decon_wait_for_vblank(struct exynos_drm_crtc 
*crtc)
                DRM_DEV_DEBUG_KMS(ctx->dev, "vblank wait timed out.\n");
 }
 
-static void decon_clear_channels(struct exynos_drm_crtc *crtc)
+static void decon_clear_channels(struct decon_context *ctx)
 {
-       struct decon_context *ctx = crtc->ctx;
        unsigned int win, ch_enabled = 0;
 
        /* Check if any channel is enabled. */
@@ -118,7 +115,7 @@ static void decon_clear_channels(struct exynos_drm_crtc 
*crtc)
 
        /* Wait for vsync, as disable channel takes effect at next vsync */
        if (ch_enabled)
-               decon_wait_for_vblank(ctx->crtc);
+               decon_wait_for_vblank(ctx);
 }
 
 static int decon_ctx_initialize(struct decon_context *ctx,
@@ -126,7 +123,7 @@ static int decon_ctx_initialize(struct decon_context *ctx,
 {
        ctx->drm_dev = drm_dev;
 
-       decon_clear_channels(ctx->crtc);
+       decon_clear_channels(ctx);
 
        return exynos_drm_register_dma(drm_dev, ctx->dev, &ctx->dma_priv);
 }

-- 
2.46.1

Reply via email to