2017년 08월 09일 20:48에 Tobias Jakobi 이(가) 쓴 글:
> DRM core already checks the validity of the pixelformats, so we
> can simplify the checks here. The same applies to the FB modifier,
> which is now checked in common Exynos plane code.
> 
> Also rename the booleans to reflect what true/false actually
> means.
> 
> Signed-off-by: Tobias Jakobi <tjak...@math.uni-bielefeld.de>
> ---
>  drivers/gpu/drm/exynos/exynos_mixer.c | 31 +++++++------------------------
>  1 file changed, 7 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
> b/drivers/gpu/drm/exynos/exynos_mixer.c
> index 4c894d97aba3..8d68de85bada 100644
> --- a/drivers/gpu/drm/exynos/exynos_mixer.c
> +++ b/drivers/gpu/drm/exynos/exynos_mixer.c
> @@ -484,32 +484,18 @@ static void vp_video_buffer(struct mixer_context *ctx,
>       unsigned int priority = state->base.normalized_zpos + 1;
>       unsigned long flags;
>       dma_addr_t luma_addr[2], chroma_addr[2];
> -     bool tiled_mode = false;
> -     bool crcb_mode = false;
> +     bool is_tiled, is_nv21;
>       u32 val;
>  
> -     switch (fb->format->format) {
> -     case DRM_FORMAT_NV12:
> -             crcb_mode = false;
> -             break;
> -     case DRM_FORMAT_NV21:
> -             crcb_mode = true;
> -             break;
> -     default:
> -             DRM_ERROR("pixel format for vp is wrong [%d].\n",
> -                             fb->format->format);
> -             return;
> -     }
> -
> -     if (fb->modifier == DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
> -             tiled_mode = true;
> +     is_nv21 = (fb->format->format == DRM_FORMAT_NV21);
> +     is_tiled = (fb->modifier == DRM_FORMAT_MOD_SAMSUNG_64_32_TILE);
>  
>       luma_addr[0] = exynos_drm_fb_dma_addr(fb, 0);
>       chroma_addr[0] = exynos_drm_fb_dma_addr(fb, 1);
>  
>       if (mode->flags & DRM_MODE_FLAG_INTERLACE) {
>               __set_bit(MXR_BIT_INTERLACE, &ctx->flags);
> -             if (tiled_mode) {
> +             if (is_tiled) {
>                       luma_addr[1] = luma_addr[0] + 0x40;
>                       chroma_addr[1] = chroma_addr[0] + 0x40;
>               } else {
> @@ -529,8 +515,8 @@ static void vp_video_buffer(struct mixer_context *ctx,
>       vp_reg_writemask(res, VP_MODE, val, VP_MODE_LINE_SKIP);
>  
>       /* setup format */
> -     val = (crcb_mode ? VP_MODE_NV21 : VP_MODE_NV12);
> -     val |= (tiled_mode ? VP_MODE_MEM_TILED : VP_MODE_MEM_LINEAR);
> +     val = (is_nv21 ? VP_MODE_NV21 : VP_MODE_NV12);
> +     val |= (is_tiled ? VP_MODE_MEM_TILED : VP_MODE_MEM_LINEAR);
>       vp_reg_writemask(res, VP_MODE, val, VP_MODE_FMT_MASK);
>  
>       /* setting size of input image */
> @@ -620,12 +606,9 @@ static void mixer_graph_buffer(struct mixer_context *ctx,
>  
>       case DRM_FORMAT_XRGB8888:
>       case DRM_FORMAT_ARGB8888:
> +     default:
>               fmt = MXR_FORMAT_ARGB8888;
>               break;
> -
> -     default:
> -             DRM_DEBUG_KMS("pixelformat unsupported by mixer\n");
> -             return;

This change should be made as another patch because this patch changes the 
behavior whether it allows wrong pixel format or not.

Thanks,
Inki Dae

>       }
>  
>       /* ratio is already checked by common plane code */
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to