mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-13 01:28:02 +07:00
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>
This commit is contained in:
parent
7a654158bd
commit
3bea21b64c
@ -908,8 +908,13 @@ int drm_fb_helper_single_fb_probe(struct drm_device *dev,
|
|||||||
|
|
||||||
if (new_fb) {
|
if (new_fb) {
|
||||||
info->var.pixclock = 0;
|
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;
|
return -EINVAL;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
drm_fb_helper_set_par(info);
|
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);
|
unregister_sysrq_key('v', &sysrq_drm_fb_helper_restore_op);
|
||||||
}
|
}
|
||||||
drm_fb_helper_crtc_free(helper);
|
drm_fb_helper_crtc_free(helper);
|
||||||
|
fb_dealloc_cmap(&helper->fb->fbdev->cmap);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_fb_helper_free);
|
EXPORT_SYMBOL(drm_fb_helper_free);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user