Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2fc4d838 authored by Benjamin Gaignard's avatar Benjamin Gaignard
Browse files

drm: rcar: use generic code for managing zpos plane property



version 6:
rebased patch on top rcar-du changes for zpos

version 4:
fix null pointer issue while setting zpos in plane reset function

This patch replaces zpos property handling custom code in rcar DRM
driver with calls to generic DRM code.

Signed-off-by: default avatarBenjamin Gaignard <benjamin.gaignard@linaro.org>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>

Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
parent e47726a1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -196,7 +196,7 @@ void rcar_du_crtc_route_output(struct drm_crtc *crtc,

static unsigned int plane_zpos(struct rcar_du_plane *plane)
{
	return to_rcar_plane_state(plane->plane.state)->zpos;
	return plane->plane.state->normalized_zpos;
}

static const struct rcar_du_format_info *
+0 −1
Original line number Diff line number Diff line
@@ -92,7 +92,6 @@ struct rcar_du_device {
	struct {
		struct drm_property *alpha;
		struct drm_property *colorkey;
		struct drm_property *zpos;
	} props;

	unsigned int dpad0_source;
+0 −5
Original line number Diff line number Diff line
@@ -527,11 +527,6 @@ static int rcar_du_properties_init(struct rcar_du_device *rcdu)
	if (rcdu->props.colorkey == NULL)
		return -ENOMEM;

	rcdu->props.zpos =
		drm_property_create_range(rcdu->ddev, 0, "zpos", 1, 7);
	if (rcdu->props.zpos == NULL)
		return -ENOMEM;

	return 0;
}

+2 −7
Original line number Diff line number Diff line
@@ -652,7 +652,7 @@ static void rcar_du_plane_reset(struct drm_plane *plane)
	state->source = RCAR_DU_PLANE_MEMORY;
	state->alpha = 255;
	state->colorkey = RCAR_DU_COLORKEY_NONE;
	state->zpos = plane->type == DRM_PLANE_TYPE_PRIMARY ? 0 : 1;
	state->state.zpos = plane->type == DRM_PLANE_TYPE_PRIMARY ? 0 : 1;

	plane->state = &state->state;
	plane->state->plane = plane;
@@ -670,8 +670,6 @@ static int rcar_du_plane_atomic_set_property(struct drm_plane *plane,
		rstate->alpha = val;
	else if (property == rcdu->props.colorkey)
		rstate->colorkey = val;
	else if (property == rcdu->props.zpos)
		rstate->zpos = val;
	else
		return -EINVAL;

@@ -690,8 +688,6 @@ static int rcar_du_plane_atomic_get_property(struct drm_plane *plane,
		*val = rstate->alpha;
	else if (property == rcdu->props.colorkey)
		*val = rstate->colorkey;
	else if (property == rcdu->props.zpos)
		*val = rstate->zpos;
	else
		return -EINVAL;

@@ -763,8 +759,7 @@ int rcar_du_planes_init(struct rcar_du_group *rgrp)
		drm_object_attach_property(&plane->plane.base,
					   rcdu->props.colorkey,
					   RCAR_DU_COLORKEY_NONE);
		drm_object_attach_property(&plane->plane.base,
					   rcdu->props.zpos, 1);
		drm_plane_create_zpos_property(&plane->plane, 1, 1, 7);
	}

	return 0;
+0 −2
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ static inline struct rcar_du_plane *to_rcar_plane(struct drm_plane *plane)
 * @hwindex: 0-based hardware plane index, -1 means unused
 * @alpha: value of the plane alpha property
 * @colorkey: value of the plane colorkey property
 * @zpos: value of the plane zpos property
 */
struct rcar_du_plane_state {
	struct drm_plane_state state;
@@ -62,7 +61,6 @@ struct rcar_du_plane_state {

	unsigned int alpha;
	unsigned int colorkey;
	unsigned int zpos;
};

static inline struct rcar_du_plane_state *
Loading