[PATCH 00/20] Introduce DRM_FB_HELPER_DEFAULT_OPS for struct fb_ops

Gustavo Padovan gustavo at padovan.org
Fri Sep 30 09:08:23 UTC 2016


Hi Stefan,

2016-09-29 Stefan Christ <contact at stefanchrist.eu>:

> Hi,
> 
> this series is refactoring work suggested by Daniel Vetter in the email:
> 
>    https://lists.freedesktop.org/archives/dri-devel/2016-July/113237.html
> 
> The define DRM_FB_HELPER_DEFAULT_OPS provides the drm_fb_helper default
> implementations for functions in struct fb_ops. A drm driver can use it like:
> 
>     static struct fb_ops drm_fbdev_cma_ops = {
>         .owner          = THIS_MODULE,
>         DRM_FB_HELPER_DEFAULT_OPS,
>         /* driver specific implementations */
>     };
> 
> The patches do not make any functional change to the kernel binary except
> driver 'drm/gma500'. The patch for gma500 enables two new functions (fb_setcmap
> and fb_pan_display) in fb_ops.  If this is not appropriate, the driver may
> reassign the struct members to null.
> 
> There is no refactoring patch for driver 'vmwgfx'. It reimplements nearly all
> fb_ops with driver specific functions anyways. 
> 
> This series is based on tag v4.8-rc8. If rebased onto 'drm-next' there are two
> small conflicts.
> 
> Kind regards,
> 	Stefan Christ
> 
> Stefan Christ (20):
>   drm/fb-helper: add DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/amdgpu: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/armada: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/ast: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/bochs: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/cirrus: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/fb_cma_helper: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/exynos: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/mgag200: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/nouveau: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/qxl: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/rockchip: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/radeon: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/tegra: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/udl: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/msm: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/virtio: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/omapdrm: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/i915: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
>   drm/gma500: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
> 
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  6 +-----
>  drivers/gpu/drm/armada/armada_fbdev.c         |  6 +-----
>  drivers/gpu/drm/ast/ast_fb.c                  |  6 +-----
>  drivers/gpu/drm/bochs/bochs_fbdev.c           |  6 +-----
>  drivers/gpu/drm/cirrus/cirrus_fbdev.c         |  6 +-----
>  drivers/gpu/drm/drm_fb_cma_helper.c           |  6 +-----
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  6 +-----
>  drivers/gpu/drm/gma500/framebuffer.c          | 12 +++---------
>  drivers/gpu/drm/i915/intel_fbdev.c            |  3 +--
>  drivers/gpu/drm/mgag200/mgag200_fb.c          |  6 +-----
>  drivers/gpu/drm/msm/msm_fbdev.c               |  7 +------
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c       | 12 ++----------
>  drivers/gpu/drm/omapdrm/omap_fbdev.c          |  5 +----
>  drivers/gpu/drm/qxl/qxl_fb.c                  |  6 +-----
>  drivers/gpu/drm/radeon/radeon_fb.c            |  6 +-----
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  6 +-----
>  drivers/gpu/drm/tegra/fb.c                    |  6 +-----
>  drivers/gpu/drm/udl/udl_fb.c                  |  6 +-----
>  drivers/gpu/drm/virtio/virtgpu_fb.c           |  6 +-----
>  include/drm/drm_fb_helper.h                   | 13 +++++++++++++
>  20 files changed, 35 insertions(+), 101 deletions(-)

This looks good to me.

Reviewed-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk>

I wonder if we shouldn't start doing the same to drm_crtc_funcs and
drm_plane_funcs after we added the atomic helpers.

Gustavo


More information about the dri-devel mailing list