Skip to content

Commit

Permalink
drm/kms: allocate framebuffer cmap
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Clemens Ladisch authored and Dave Airlie committed Nov 19, 2009
1 parent 7a65415 commit 3bea21b
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion drivers/gpu/drm/drm_fb_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit 3bea21b

Please sign in to comment.