[PATCH 02/16] drm/omap: fix setting & clearing DOUBLESTRIDE
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Wed May 24 12:36:35 UTC 2017
Hi Tomi,
Thank you for the patch.
On Thursday 04 May 2017 13:23:18 Tomi Valkeinen wrote:
> The code that sets and clears DOUBLESTRIDE is only ran when using NV12.
> This is not correct, as we might first set the bith when using NV12, but
> never clear it when using other formats.
>
> Fix it so that when the bit is available (when the HW supports NV12) we
> always either set or clear the bit.
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> drivers/gpu/drm/omapdrm/dss/dispc.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c
> b/drivers/gpu/drm/omapdrm/dss/dispc.c index 352fad583571..079ec5d0b624
> 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dispc.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
> @@ -1864,14 +1864,15 @@ static void dispc_ovl_set_rotation_attrs(enum
> omap_plane_id plane, u8 rotation, REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane),
> row_repeat ? 1 : 0, 18, 18);
>
> - if (color_mode == OMAP_DSS_COLOR_NV12) {
> - bool doublestride = (rotation_type == OMAP_DSS_ROT_TILER) &&
> - (rotation == OMAP_DSS_ROT_0 ||
> - rotation == OMAP_DSS_ROT_180);
> + if (dss_feat_color_mode_supported(plane, OMAP_DSS_COLOR_NV12)) {
> + bool doublestride =
> + color_mode == OMAP_DSS_COLOR_NV12 &&
> + rotation_type == OMAP_DSS_ROT_TILER &&
> + (rotation == OMAP_DSS_ROT_0 || rotation ==
OMAP_DSS_ROT_180);
> +
> /* DOUBLESTRIDE */
> REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), doublestride, 22,
22);
> }
> -
> }
>
> static int color_mode_to_bpp(enum omap_color_mode color_mode)
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list