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@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