Message ID | 1465428739-26529-15-git-send-email-laurent.pinchart@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
This patch looks good to me: Reviewed-by: Sinclair Yeh <syeh@vmware.com> On Thu, Jun 09, 2016 at 02:32:18AM +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@ideasonboard.com> > --- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > Cc: VMware Graphics <linux-graphics-maintainer@vmware.com> > Cc: Sinclair Yeh <syeh@vmware.com> > Cc: Thomas Hellstrom <thellstrom@vmware.com> > > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > index 55231cce73a0..1a7187f472de 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; > > /** > * This code should be conditioned on Screen Objects not being used. > -- > Regards, > > Laurent Pinchart >
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 55231cce73a0..1a7187f472de 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; /** * This code should be conditioned on Screen Objects not being used.
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@ideasonboard.com> --- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) Cc: VMware Graphics <linux-graphics-maintainer@vmware.com> Cc: Sinclair Yeh <syeh@vmware.com> Cc: Thomas Hellstrom <thellstrom@vmware.com>