aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/drm_fb_helper.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index e812babe2122..515b838006d2 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -908,8 +908,13 @@ int drm_fb_helper_single_fb_probe(struct drm_device *dev,
908 908
909 if (new_fb) { 909 if (new_fb) {
910 info->var.pixclock = 0; 910 info->var.pixclock = 0;
911 if (register_framebuffer(info) < 0) 911 ret = fb_alloc_cmap(&info->cmap, crtc->gamma_size, 0);
912 if (ret)
913 return ret;
914 if (register_framebuffer(info) < 0) {
915 fb_dealloc_cmap(&info->cmap);
912 return -EINVAL; 916 return -EINVAL;
917 }
913 } else { 918 } else {
914 drm_fb_helper_set_par(info); 919 drm_fb_helper_set_par(info);
915 } 920 }
@@ -939,6 +944,7 @@ void drm_fb_helper_free(struct drm_fb_helper *helper)
939 unregister_sysrq_key('v', &sysrq_drm_fb_helper_restore_op); 944 unregister_sysrq_key('v', &sysrq_drm_fb_helper_restore_op);
940 } 945 }
941 drm_fb_helper_crtc_free(helper); 946 drm_fb_helper_crtc_free(helper);
947 fb_dealloc_cmap(&helper->fb->fbdev->cmap);
942} 948}
943EXPORT_SYMBOL(drm_fb_helper_free); 949EXPORT_SYMBOL(drm_fb_helper_free);
944 950