On Thu, Sep 08, 2016 at 05:44:16PM +0300, Laurent Pinchart wrote:
> Turn the drm_format_*() helpers into wrappers around the drm_format_info
> lookup function to centralize all format information in a single place.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
>  drivers/gpu/drm/drm_fourcc.c | 186 
> +++++++++----------------------------------
>  1 file changed, 37 insertions(+), 149 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
> index 6b91bd8a510d..bf91c5044d84 100644
> --- a/drivers/gpu/drm/drm_fourcc.c
> +++ b/drivers/gpu/drm/drm_fourcc.c
> @@ -198,69 +198,22 @@ EXPORT_SYMBOL(drm_format_info);
>  void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth,
>                         int *bpp)
>  {
> -     char *format_name;
> -
> -     switch (format) {
> -     case DRM_FORMAT_C8:
> -     case DRM_FORMAT_RGB332:
> -     case DRM_FORMAT_BGR233:
> -             *depth = 8;
> -             *bpp = 8;
> -             break;
> -     case DRM_FORMAT_XRGB1555:
> -     case DRM_FORMAT_XBGR1555:
> -     case DRM_FORMAT_RGBX5551:
> -     case DRM_FORMAT_BGRX5551:
> -     case DRM_FORMAT_ARGB1555:
> -     case DRM_FORMAT_ABGR1555:
> -     case DRM_FORMAT_RGBA5551:
> -     case DRM_FORMAT_BGRA5551:
> -             *depth = 15;
> -             *bpp = 16;
> -             break;
> -     case DRM_FORMAT_RGB565:
> -     case DRM_FORMAT_BGR565:
> -             *depth = 16;
> -             *bpp = 16;
> -             break;
> -     case DRM_FORMAT_RGB888:
> -     case DRM_FORMAT_BGR888:
> -             *depth = 24;
> -             *bpp = 24;
> -             break;
> -     case DRM_FORMAT_XRGB8888:
> -     case DRM_FORMAT_XBGR8888:
> -     case DRM_FORMAT_RGBX8888:
> -     case DRM_FORMAT_BGRX8888:
> -             *depth = 24;
> -             *bpp = 32;
> -             break;
> -     case DRM_FORMAT_XRGB2101010:
> -     case DRM_FORMAT_XBGR2101010:
> -     case DRM_FORMAT_RGBX1010102:
> -     case DRM_FORMAT_BGRX1010102:
> -     case DRM_FORMAT_ARGB2101010:
> -     case DRM_FORMAT_ABGR2101010:
> -     case DRM_FORMAT_RGBA1010102:
> -     case DRM_FORMAT_BGRA1010102:
> -             *depth = 30;
> -             *bpp = 32;
> -             break;
> -     case DRM_FORMAT_ARGB8888:
> -     case DRM_FORMAT_ABGR8888:
> -     case DRM_FORMAT_RGBA8888:
> -     case DRM_FORMAT_BGRA8888:
> -             *depth = 32;
> -             *bpp = 32;
> -             break;
> -     default:
> -             format_name = drm_get_format_name(format);
> +     const struct drm_format_info *info;
> +
> +     info = drm_format_info(format);
> +     if (!info || !info->depth) {
> +             char *format_name = drm_get_format_name(format);
> +
>               DRM_DEBUG_KMS("unsupported pixel format %s\n", format_name);
>               kfree(format_name);
> +
>               *depth = 0;
>               *bpp = 0;
> -             break;
> +             return;
>       }
> +
> +     *depth = info->depth;
> +     *bpp = info->cpp[0] << 3;

Bikeshed: This is a funny way to write * 8 ... Would be nice to fix imo.

Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

Reply via email to