On Tue, Feb 07, 2017 at 03:10:50PM +0100, Daniel Vetter wrote:
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 5220a7b5e6ff..074ab22a7cf3 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -781,7 +781,9 @@ EXPORT_SYMBOL(drm_fb_helper_init);
- @fb_helper: driver-allocated fbdev helper
- A helper to alloc fb_info and the members cmap and apertures. Called
- by the driver within the fb_probe fb_helper callback function.
- by the driver within the fb_probe fb_helper callback function. Drivers do not
- need to release the allocated fb_info structure themselves, this is
- automatically done when calling drm_fb_helper_fini().
- RETURNS:
- fb_info pointer if things went okay, pointer containing error code
@@ -866,9 +868,19 @@ EXPORT_SYMBOL(drm_fb_helper_release_fbi);
I was expecting to see drm_fb_helper_release_fbi() removed.
*/ void drm_fb_helper_fini(struct drm_fb_helper *fb_helper) {
- if (!drm_fbdev_emulation)
struct fb_info *info;
if (!drm_fbdev_emulation || !fb_helper) return;
info = fb_helper->fbdev;
if (info) {
if (info->cmap.len)
fb_dealloc_cmap(&info->cmap);
framebuffer_release(info);
}
fb_helper->fbdev = NULL;
mutex_lock(&kernel_fb_helper_lock); if (!list_empty(&fb_helper->kernel_fb_list)) { list_del(&fb_helper->kernel_fb_list);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c