The crtc and enabled fields duplicates information stored in the plane
state. Use the plane state instead and remove the fields.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
---
 drivers/gpu/drm/rcar-du/rcar_du_crtc.c  |  6 ++----
 drivers/gpu/drm/rcar-du/rcar_du_plane.c | 15 +++------------
 drivers/gpu/drm/rcar-du/rcar_du_plane.h |  3 ---
 3 files changed, 5 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c 
b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
index faa46ed23a62..3f64707412e6 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
@@ -212,7 +212,7 @@ static void rcar_du_crtc_update_planes(struct drm_crtc 
*crtc)
                struct rcar_du_plane *plane = &rcrtc->group->planes.planes[i];
                unsigned int j;

-               if (plane->crtc != &rcrtc->crtc || !plane->enabled)
+               if (plane->plane.state->crtc != &rcrtc->crtc)
                        continue;

                /* Insert the plane in the sorted planes array. */
@@ -379,7 +379,7 @@ static void rcar_du_crtc_start(struct rcar_du_crtc *rcrtc)
        for (i = 0; i < ARRAY_SIZE(rcrtc->group->planes.planes); ++i) {
                struct rcar_du_plane *plane = &rcrtc->group->planes.planes[i];

-               if (plane->crtc != crtc || !plane->enabled)
+               if (plane->plane.state->crtc != crtc)
                        continue;

                rcar_du_plane_setup(plane);
@@ -608,8 +608,6 @@ int rcar_du_crtc_create(struct rcar_du_group *rgrp, 
unsigned int index)
        rcrtc->enabled = false;
        rcrtc->plane = &rgrp->planes.planes[index % 2];

-       rcrtc->plane->crtc = crtc;
-
        ret = drm_crtc_init_with_planes(rcdu->ddev, crtc, &rcrtc->plane->plane,
                                        NULL, &crtc_funcs);
        if (ret < 0)
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c 
b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
index f28d13dc6fc9..c5cb2ade2722 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
@@ -140,7 +140,8 @@ static void rcar_du_plane_setup_fb(struct rcar_du_plane 
*plane)
        bool interlaced;
        u32 mwr;

-       interlaced = plane->crtc->mode.flags & DRM_MODE_FLAG_INTERLACE;
+       interlaced = plane->plane.state->crtc->state->adjusted_mode.flags
+                  & DRM_MODE_FLAG_INTERLACE;

        /* Memory pitch (expressed in pixels). Must be doubled for interlaced
         * operation with 32bpp formats.
@@ -354,16 +355,11 @@ static int rcar_du_plane_atomic_check(struct drm_plane 
*plane,

 static void rcar_du_plane_disable(struct rcar_du_plane *rplane)
 {
-       if (!rplane->enabled)
+       if (!rplane->plane.state->crtc)
                return;

-       mutex_lock(&rplane->group->planes.lock);
-       rplane->enabled = false;
-       mutex_unlock(&rplane->group->planes.lock);
-
        rcar_du_plane_release(rplane);

-       rplane->crtc = NULL;
        rplane->format = NULL;
 }

@@ -391,14 +387,9 @@ static void rcar_du_plane_atomic_update(struct drm_plane 
*plane,
                rcar_du_plane_reserve(rplane, format);
        }

-       rplane->crtc = state->crtc;
        rplane->format = format;

        rcar_du_plane_setup(rplane);
-
-       mutex_lock(&rplane->group->planes.lock);
-       rplane->enabled = true;
-       mutex_unlock(&rplane->group->planes.lock);
 }

 static const struct drm_plane_helper_funcs rcar_du_plane_helper_funcs = {
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.h 
b/drivers/gpu/drm/rcar-du/rcar_du_plane.h
index 012f2185ca1f..7050fc1e11ec 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_plane.h
+++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.h
@@ -34,9 +34,6 @@ struct rcar_du_plane {
        struct drm_plane plane;

        struct rcar_du_group *group;
-       struct drm_crtc *crtc;
-
-       bool enabled;

        int hwindex;            /* 0-based, -1 means unused */

-- 
2.0.5

Reply via email to