[PATCH v2 00/18] Introduce DRM_FB_HELPER_DEFAULT_OPS for struct fb_ops
Daniel Vetter
daniel at ffwll.ch
Mon Nov 14 07:02:12 UTC 2016
On Mon, Nov 14, 2016 at 12:03:10AM +0100, Stefan Christ wrote:
> Hi,
>
> this is the second version of the 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 first patch that adds the helper define was already accepted into the
> kernel release candidate v4.9-rc1.
>
> For the new stuff:
>
> Implementing fb_debug_enter and fb_debug_leave callbacks is not without
> pitfalls. It was necessary that driver also implements the mode_set_base_atomic
> callback in struct drm_crtc_helper_funcs. Otherwise it may segfaults. The first
> patch in this series changes that and introduces a check for it. Now functions
> drm_fb_helper_debug_(enter|leave) can be used without implementing callback
> mode_set_base_atomic. At least the drm drivers armada, ast, qxl, udl and virtio
> are affected by this issue. It seems that the code path was never executed for
> these drivers and nobody noticed.
>
> Refactoring patches for ast, cirrus and mgag200 are dropped. I leave it to
> Daniel if additional drivers should not be converted.
>
> This series is based on tag v4.9-rc1 and applies cleanly onto drm-next, too.
>
> Kind regards,
> Stefan Christ
>
>
> Changes in v2:
> - add patch 'fix segfaults in drm_fb_helper_debug_*'.
> So functions drm_fb_helper_debug_(enter|leave) can be used
> unconditionally.
> - add patch 'add fb_debug_* to DRM_FB_HELPER_DEFAULT_OPS' that
> uses drm_fb_helper_debug_(enter|leave) to implement
> fb_debug_(enter|leave). It depends on the previous patch
> to avoid regressions.
> - Drop patches for drm drivers 'ast', 'cirrus' and 'mgag200'
> since they reimplemented most of the fb_ops callbacks anyway.
> - Also remove fb_debug_(enter|leave) callbacks in fb_ops all
> refactoring patches.
Applied the entire series to drm-misc, thanks.
-Daniel
>
>
> Stefan Christ (18):
> drm/fb-helper: fix segfaults in drm_fb_helper_debug_*
> drm/fb-helper: add fb_debug_* to DRM_FB_HELPER_DEFAULT_OPS
> drm/amdgpu: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
> drm/armada: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops
> drm/bochs: 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/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 | 8 +-------
> drivers/gpu/drm/armada/armada_fbdev.c | 8 +-------
> drivers/gpu/drm/bochs/bochs_fbdev.c | 6 +-----
> drivers/gpu/drm/drm_fb_cma_helper.c | 6 +-----
> drivers/gpu/drm/drm_fb_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 | 5 +----
> drivers/gpu/drm/msm/msm_fbdev.c | 7 +------
> drivers/gpu/drm/nouveau/nouveau_fbcon.c | 16 ++--------------
> drivers/gpu/drm/omapdrm/omap_fbdev.c | 5 +----
> drivers/gpu/drm/qxl/qxl_fb.c | 8 +-------
> drivers/gpu/drm/radeon/radeon_fb.c | 8 +-------
> drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 6 +-----
> drivers/gpu/drm/tegra/fb.c | 6 +-----
> drivers/gpu/drm/udl/udl_fb.c | 8 +-------
> drivers/gpu/drm/virtio/virtgpu_fb.c | 8 +-------
> include/drm/drm_fb_helper.h | 4 +++-
> 18 files changed, 28 insertions(+), 105 deletions(-)
>
> --
> 2.7.3
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list