Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3bea21b6 authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Dave Airlie
Browse files

drm/kms: allocate framebuffer cmap



Without an allocated colormap, FBIOGETCMAP fails.  This would make
programs restore an all-black colormap ("links -g") or fail to work
altogether ("mplayer -vo fbdev2").

Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 7a654158
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -908,8 +908,13 @@ int drm_fb_helper_single_fb_probe(struct drm_device *dev,

	if (new_fb) {
		info->var.pixclock = 0;
		if (register_framebuffer(info) < 0)
		ret = fb_alloc_cmap(&info->cmap, crtc->gamma_size, 0);
		if (ret)
			return ret;
		if (register_framebuffer(info) < 0) {
			fb_dealloc_cmap(&info->cmap);
			return -EINVAL;
		}
	} else {
		drm_fb_helper_set_par(info);
	}
@@ -939,6 +944,7 @@ void drm_fb_helper_free(struct drm_fb_helper *helper)
		unregister_sysrq_key('v', &sysrq_drm_fb_helper_restore_op);
	}
	drm_fb_helper_crtc_free(helper);
	fb_dealloc_cmap(&helper->fb->fbdev->cmap);
}
EXPORT_SYMBOL(drm_fb_helper_free);