[PATCH 14/23] drm/omap: plane: Fix zpos initial value mismatch
Tomi Valkeinen
tomi.valkeinen at ideasonboard.com
Wed Feb 9 07:33:00 UTC 2022
On 07/02/2022 18:35, Maxime Ripard wrote:
> While the omap_plane_init() function calls
> drm_plane_create_zpos_property() with an initial value of 0,
> omap_plane_reset() will force it to another value depending on the plane
> type.
>
> Fix the discrepancy by setting the initial zpos value to the same value
> in the drm_plane_create_zpos_property() call.
>
> Cc: Tomi Valkeinen <tomba at kernel.org>
> Signed-off-by: Maxime Ripard <maxime at cerno.tech>
> ---
> drivers/gpu/drm/omapdrm/omap_plane.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index b35205c4e979..e67baf9a942c 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -533,6 +533,7 @@ struct drm_plane *omap_plane_init(struct drm_device *dev,
> unsigned int num_planes = dispc_get_num_ovls(priv->dispc);
> struct drm_plane *plane;
> struct omap_plane *omap_plane;
> + unsigned int zpos;
> int ret;
> u32 nformats;
> const u32 *formats;
> @@ -564,7 +565,16 @@ struct drm_plane *omap_plane_init(struct drm_device *dev,
> drm_plane_helper_add(plane, &omap_plane_helper_funcs);
>
> omap_plane_install_properties(plane, &plane->base);
> - drm_plane_create_zpos_property(plane, 0, 0, num_planes - 1);
> +
> + /*
> + * Set the zpos default depending on whether we are a primary or overlay
> + * plane.
> + */
> + if (plane->type == DRM_PLANE_TYPE_PRIMARY)
> + zpos = 0;
> + else
> + zpos = omap_plane->id;
> + drm_plane_create_zpos_property(plane, zpos, 0, num_planes - 1);
> drm_plane_create_alpha_property(plane);
> drm_plane_create_blend_mode_property(plane, BIT(DRM_MODE_BLEND_PREMULTI) |
> BIT(DRM_MODE_BLEND_COVERAGE));
Reviewed-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
Tomi
More information about the dri-devel
mailing list