diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2009-11-04 03:43:00 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-11-18 22:02:53 -0500 |
commit | 3bea21b64c0e3f380814de990ef57ff1f08dbf95 (patch) | |
tree | 89a510111ceac1d2de0b3de2149df867381767e4 /drivers | |
parent | 7a654158bdf9dc318fd451fbf606ed100d6ba25f (diff) |
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: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/drm_fb_helper.c | 8 |
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 e812babe212..515b838006d 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 | } |
943 | EXPORT_SYMBOL(drm_fb_helper_free); | 949 | EXPORT_SYMBOL(drm_fb_helper_free); |
944 | 950 | ||