Re: [Intel-gfx] [PATCH 4/5] drm/omapdrm: Substitute format_is_yuv() with format->is_yuv
From: Ville Syrjälä
Date: Wed Jul 18 2018 - 06:17:52 EST
On Tue, Jul 17, 2018 at 06:13:45PM +0100, Ayan Kumar Halder wrote:
> drm_format_info table has a field 'is_yuv' to denote if the format
> is yuv or not. The driver is expected to use this instead of
> having a function for the same purpose.
>
> Signed-off-by: Ayan Kumar halder <ayan.halder@xxxxxxx>
> ---
> drivers/gpu/drm/omapdrm/dss/dispc.c | 26 ++++++++++----------------
> 1 file changed, 10 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c b/drivers/gpu/drm/omapdrm/dss/dispc.c
> index 84f274c..8d2d7a4 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dispc.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
> @@ -1140,18 +1140,6 @@ static void dispc_ovl_set_color_mode(struct dispc_device *dispc,
> REG_FLD_MOD(dispc, DISPC_OVL_ATTRIBUTES(plane), m, 4, 1);
> }
>
> -static bool format_is_yuv(u32 fourcc)
> -{
> - switch (fourcc) {
> - case DRM_FORMAT_YUYV:
> - case DRM_FORMAT_UYVY:
> - case DRM_FORMAT_NV12:
> - return true;
> - default:
> - return false;
> - }
> -}
> -
> static void dispc_ovl_configure_burst_type(struct dispc_device *dispc,
> enum omap_plane_id plane,
> enum omap_dss_rotation_type rotation)
> @@ -1910,11 +1898,14 @@ static void dispc_ovl_set_scaling_uv(struct dispc_device *dispc,
> int scale_x = out_width != orig_width;
> int scale_y = out_height != orig_height;
> bool chroma_upscale = plane != OMAP_DSS_WB;
> + const struct drm_format_info *info;
> +
> + info = drm_format_info(fourcc);
Not sure Tomi wants drm usage (apart from the fourccs) inside the
dss code.
>
> if (!dispc_has_feature(dispc, FEAT_HANDLE_UV_SEPARATE))
> return;
>
> - if (!format_is_yuv(fourcc)) {
> + if (!info->is_yuv) {
> /* reset chroma resampling for RGB formats */
> if (plane != OMAP_DSS_WB)
> REG_FLD_MOD(dispc, DISPC_OVL_ATTRIBUTES2(plane),
> @@ -2632,6 +2623,9 @@ static int dispc_ovl_setup_common(struct dispc_device *dispc,
> bool ilace = !!(vm->flags & DISPLAY_FLAGS_INTERLACED);
> unsigned long pclk = dispc_plane_pclk_rate(dispc, plane);
> unsigned long lclk = dispc_plane_lclk_rate(dispc, plane);
> + const struct drm_format_info *info;
> +
> + info = drm_format_info(fourcc);
>
> /* when setting up WB, dispc_plane_pclk_rate() returns 0 */
> if (plane == OMAP_DSS_WB)
> @@ -2640,7 +2634,7 @@ static int dispc_ovl_setup_common(struct dispc_device *dispc,
> if (paddr == 0 && rotation_type != OMAP_DSS_ROT_TILER)
> return -EINVAL;
>
> - if (format_is_yuv(fourcc) && (in_width & 1)) {
> + if (info->is_yuv && (in_width & 1)) {
> DSSERR("input width %d is not even for YUV format\n", in_width);
> return -EINVAL;
> }
> @@ -2680,7 +2674,7 @@ static int dispc_ovl_setup_common(struct dispc_device *dispc,
> DSSDBG("predecimation %d x %x, new input size %d x %d\n",
> x_predecim, y_predecim, in_width, in_height);
>
> - if (format_is_yuv(fourcc) && (in_width & 1)) {
> + if (info->is_yuv && (in_width & 1)) {
> DSSDBG("predecimated input width is not even for YUV format\n");
> DSSDBG("adjusting input width %d -> %d\n",
> in_width, in_width & ~1);
> @@ -2688,7 +2682,7 @@ static int dispc_ovl_setup_common(struct dispc_device *dispc,
> in_width &= ~1;
> }
>
> - if (format_is_yuv(fourcc))
> + if (info->is_yuv)
> cconv = 1;
>
> if (ilace && !fieldmode) {
> --
> 2.7.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel