Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 865afb11 authored by Stefan Agner's avatar Stefan Agner Committed by Daniel Vetter
Browse files

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: default avatarStefan Agner <stefan@agner.ch>
Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20161011231504.17688-1-stefan@agner.ch
parent a28187cc
Loading
Loading
Loading
Loading
+8 −5
Original line number Original line Diff line number Diff line
@@ -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,