提交 865afb11 编写于 作者: S Stefan Agner 提交者: Daniel Vetter

drm/fb-helper: reject any changes to the fbdev

The current fbdev emulation does not allow to push back changes in
width, height or depth to KMS, hence reject any changes with an
error. This makes sure that fbdev ioctl's fail properly and user
space does not assume that changes succeeded.
Signed-off-by: NStefan Agner <stefan@agner.ch>
Reviewed-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20161011231504.17688-1-stefan@agner.ch
上级 a28187cc
...@@ -1209,11 +1209,14 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var, ...@@ -1209,11 +1209,14 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
if (var->pixclock != 0 || in_dbg_master()) if (var->pixclock != 0 || in_dbg_master())
return -EINVAL; return -EINVAL;
/* Need to resize the fb object !!! */ /*
if (var->bits_per_pixel > fb->bits_per_pixel || * Changes struct fb_var_screeninfo are currently not pushed back
var->xres > fb->width || var->yres > fb->height || * to KMS, hence fail if different settings are requested.
var->xres_virtual > fb->width || var->yres_virtual > fb->height) { */
DRM_DEBUG("fb userspace requested width/height/bpp is greater than current fb " if (var->bits_per_pixel != fb->bits_per_pixel ||
var->xres != fb->width || var->yres != fb->height ||
var->xres_virtual != fb->width || var->yres_virtual != fb->height) {
DRM_DEBUG("fb userspace requested width/height/bpp different than current fb "
"request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n", "request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n",
var->xres, var->yres, var->bits_per_pixel, var->xres, var->yres, var->bits_per_pixel,
var->xres_virtual, var->yres_virtual, var->xres_virtual, var->yres_virtual,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册