Browse Source

drm: rcar-du: Remove private copy of plane size and position

The plane source and destination size and positions are stored in the
plane state, and a private copy is kept in the rcar_du_plane objects.
Remove the private copy as it just duplicates the state.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Laurent Pinchart 10 years ago
parent
commit
287bdf0303
2 changed files with 10 additions and 23 deletions
  1. 10 15
      drivers/gpu/drm/rcar-du/rcar_du_plane.c
  2. 0 8
      drivers/gpu/drm/rcar-du/rcar_du_plane.h

+ 10 - 15
drivers/gpu/drm/rcar-du/rcar_du_plane.c

@@ -132,6 +132,8 @@ static void rcar_du_plane_release(struct rcar_du_plane *plane)
 void rcar_du_plane_update_base(struct rcar_du_plane *plane)
 void rcar_du_plane_update_base(struct rcar_du_plane *plane)
 {
 {
 	struct rcar_du_group *rgrp = plane->group;
 	struct rcar_du_group *rgrp = plane->group;
+	unsigned int src_x = plane->plane.state->src_x >> 16;
+	unsigned int src_y = plane->plane.state->src_y >> 16;
 	unsigned int index = plane->hwindex;
 	unsigned int index = plane->hwindex;
 	bool interlaced;
 	bool interlaced;
 	u32 mwr;
 	u32 mwr;
@@ -163,8 +165,8 @@ void rcar_du_plane_update_base(struct rcar_du_plane *plane)
 	 * require a halved Y position value, in both progressive and interlaced
 	 * require a halved Y position value, in both progressive and interlaced
 	 * modes.
 	 * modes.
 	 */
 	 */
-	rcar_du_plane_write(rgrp, index, PnSPXR, plane->src_x);
-	rcar_du_plane_write(rgrp, index, PnSPYR, plane->src_y *
+	rcar_du_plane_write(rgrp, index, PnSPXR, src_x);
+	rcar_du_plane_write(rgrp, index, PnSPYR, src_y *
 			    (!interlaced && plane->format->bpp == 32 ? 2 : 1));
 			    (!interlaced && plane->format->bpp == 32 ? 2 : 1));
 	rcar_du_plane_write(rgrp, index, PnDSA0R, plane->dma[0]);
 	rcar_du_plane_write(rgrp, index, PnDSA0R, plane->dma[0]);
 
 
@@ -173,8 +175,8 @@ void rcar_du_plane_update_base(struct rcar_du_plane *plane)
 
 
 		rcar_du_plane_write(rgrp, index, PnMWR, plane->pitch);
 		rcar_du_plane_write(rgrp, index, PnMWR, plane->pitch);
 
 
-		rcar_du_plane_write(rgrp, index, PnSPXR, plane->src_x);
-		rcar_du_plane_write(rgrp, index, PnSPYR, plane->src_y *
+		rcar_du_plane_write(rgrp, index, PnSPXR, src_x);
+		rcar_du_plane_write(rgrp, index, PnSPYR, src_y *
 				    (plane->format->bpp == 16 ? 2 : 1) / 2);
 				    (plane->format->bpp == 16 ? 2 : 1) / 2);
 		rcar_du_plane_write(rgrp, index, PnDSA0R, plane->dma[1]);
 		rcar_du_plane_write(rgrp, index, PnDSA0R, plane->dma[1]);
 	}
 	}
@@ -294,10 +296,10 @@ static void __rcar_du_plane_setup(struct rcar_du_plane *plane,
 	rcar_du_plane_write(rgrp, index, PnDDCR4, ddcr4);
 	rcar_du_plane_write(rgrp, index, PnDDCR4, ddcr4);
 
 
 	/* Destination position and size */
 	/* Destination position and size */
-	rcar_du_plane_write(rgrp, index, PnDSXR, plane->width);
-	rcar_du_plane_write(rgrp, index, PnDSYR, plane->height);
-	rcar_du_plane_write(rgrp, index, PnDPXR, plane->dst_x);
-	rcar_du_plane_write(rgrp, index, PnDPYR, plane->dst_y);
+	rcar_du_plane_write(rgrp, index, PnDSXR, plane->plane.state->crtc_w);
+	rcar_du_plane_write(rgrp, index, PnDSYR, plane->plane.state->crtc_h);
+	rcar_du_plane_write(rgrp, index, PnDPXR, plane->plane.state->crtc_x);
+	rcar_du_plane_write(rgrp, index, PnDPYR, plane->plane.state->crtc_y);
 
 
 	/* Wrap-around and blinking, disabled */
 	/* Wrap-around and blinking, disabled */
 	rcar_du_plane_write(rgrp, index, PnWASPR, 0);
 	rcar_du_plane_write(rgrp, index, PnWASPR, 0);
@@ -399,13 +401,6 @@ static void rcar_du_plane_atomic_update(struct drm_plane *plane,
 	rplane->crtc = state->crtc;
 	rplane->crtc = state->crtc;
 	rplane->format = format;
 	rplane->format = format;
 
 
-	rplane->src_x = state->src_x >> 16;
-	rplane->src_y = state->src_y >> 16;
-	rplane->dst_x = state->crtc_x;
-	rplane->dst_y = state->crtc_y;
-	rplane->width = state->crtc_w;
-	rplane->height = state->crtc_h;
-
 	rcar_du_plane_compute_base(rplane, state->fb);
 	rcar_du_plane_compute_base(rplane, state->fb);
 	rcar_du_plane_setup(rplane);
 	rcar_du_plane_setup(rplane);
 
 

+ 0 - 8
drivers/gpu/drm/rcar-du/rcar_du_plane.h

@@ -47,14 +47,6 @@ struct rcar_du_plane {
 
 
 	unsigned long dma[2];
 	unsigned long dma[2];
 	unsigned int pitch;
 	unsigned int pitch;
-
-	unsigned int width;
-	unsigned int height;
-
-	unsigned int src_x;
-	unsigned int src_y;
-	unsigned int dst_x;
-	unsigned int dst_y;
 };
 };
 
 
 struct rcar_du_planes {
 struct rcar_du_planes {