Re: [PATCH v4 12/14] drm: vmwgfx: Replace drm_fb_get_bpp_depth() with drm_format_info()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 08, 2016 at 05:44:26PM +0300, Laurent Pinchart wrote:
> The driver is the last users of the drm_fb_get_bpp_depth() function. It
> should ideally be converted to use struct drm_mode_fb_cmd2 instead of
> the legacy struct drm_mode_fb_cmd internally, but that will require
> broad changes across the code base. As a first step, replace
> drm_fb_get_bpp_depth() with drm_format_info() in order to stop exporting
> the function to drivers.
> 
> The new DRM_ERROR() message comes from the vmw_create_dmabuf_proxy(),
> vmw_kms_new_framebuffer_surface() and vmw_kms_new_framebuffer_dmabuf()
> functions that currently print an error if the pixel format is
> unsupported.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
> ---
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> Cc: VMware Graphics <linux-graphics-maintainer@xxxxxxxxxx>
> Cc: Sinclair Yeh <syeh@xxxxxxxxxx>
> Cc: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
> 
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index bf28ccc150df..c965514b82be 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -980,14 +980,22 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
>  	struct vmw_dma_buffer *bo = NULL;
>  	struct ttm_base_object *user_obj;
>  	struct drm_mode_fb_cmd mode_cmd;
> +	const struct drm_format_info *info;
>  	int ret;
>  
> +	info = drm_format_info(mode_cmd2->pixel_format);
> +	if (!info || !info->depth) {
> +		DRM_ERROR("Unsupported framebuffer format %s\n",
> +			  drm_get_format_name(mode_cmd2->pixel_format));
> +		return ERR_PTR(-EINVAL);
> +	}
> +
>  	mode_cmd.width = mode_cmd2->width;
>  	mode_cmd.height = mode_cmd2->height;
>  	mode_cmd.pitch = mode_cmd2->pitches[0];
>  	mode_cmd.handle = mode_cmd2->handles[0];
> -	drm_fb_get_bpp_depth(mode_cmd2->pixel_format, &mode_cmd.depth,
> -				    &mode_cmd.bpp);
> +	mode_cmd.depth = info->depth;
> +	mode_cmd.bpp = info->cpp[0] * 8;

I think this should use drm_helper_mode_fill_fb_struct instead.
-Daniel

>  
>  	/**
>  	 * This code should be conditioned on Screen Objects not being used.
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux