Skip to contentSkip to conversation

drm/kms/fb: check for depth changes from userspace for resizing.

PATCH New Dave Airlie 1 participant 1 message Jan 7, 2010

Subsystems (2)
lore
Share & tools
lore

Dave Airlie

author maintainer
#0 lore raw

PATCH 1/1 drm/kms/fb: check for depth changes from userspace for resizing.

From: Dave Airlie <[email protected]>

If userspace (plymouth in this case) asks for a deeper depth, refuse it as well due to lack of resizing.

This fixes an issue since < 32MB cards went to 8bpp and plymouth crashes on startup.

---
 drivers/gpu/drm/drm_fb_helper.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
drivers/gpu/drm/drm_fb_helper.c +4 -5
index 1b49fa0..c9fa8d7 100644
@@ -606,11 +606,10 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 		return -EINVAL;
 
 	/* Need to resize the fb object !!! */
-	if (var->xres > fb->width || var->yres > fb->height) {
-		DRM_ERROR("Requested width/height is greater than current fb "
-			   "object %dx%d > %dx%d\n", var->xres, var->yres,
-			   fb->width, fb->height);
-		DRM_ERROR("Need resizing code.\n");
+	if (var->bits_per_pixel > fb->bits_per_pixel || var->xres > fb->width || var->yres > fb->height) {
+		DRM_DEBUG("fb userspace requested width/height/bpp is greater than current fb "
+			  "object %dx%d-%d > %dx%d-%d\n", var->xres, var->yres, var->bits_per_pixel,
+			  fb->width, fb->height, fb->bits_per_pixel);
 		return -EINVAL;
 	}
 
Signature · 10 lines
1.6.5.2


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--