Thread (4 messages) 4 messages, 3 authors, 2008-09-05

Re: [PATCH 2/2] atmel_lcdfb: Disallow to set larger resolution than framebuffer memory can handle

From: Stanislaw Gruszka <stf_xl@wp.pl>
Date: 2008-09-04 07:14:32

Wednesday 03 September 2008 20:59:26 Krzysztof Helt napisał(a):
On Wed, 3 Sep 2008 15:37:40 +0200
Stanislaw Gruszka [off-list ref] wrote:
quoted
Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
CC: Nicolas Ferre <redacted>
---
 drivers/video/atmel_lcdfb.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index 3376f35..5d6cf33 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -342,6 +342,13 @@ static int atmel_lcdfb_check_var(struct fb_var_screeninfo *var,
 	var->transp.offset = var->transp.length = 0;
 	var->xoffset = var->yoffset = 0;
 
+	if (info->fix.smem_len) {
Is it possible to have smem_len not set in the atmel_lcdfb?
Probably not as it is always set in the probe function.
fb_check_var() is called indirectly (via fb_find_mode() call) before smem_len
is setted in probe function. And in some cases we need to know resolution
to set up smem_len and allocate memory (egg and chicken problem). 
So such check is needed in atmel_lcdfb_check_var().

Cheers
Stanislaw Gruszka
Kind regards,
Krzysztof
quoted
+		unsigned int smem_len = (var->xres_virtual * var->yres_virtual
+					 * ((var->bits_per_pixel + 7) / 8));
+		if (smem_len > info->fix.smem_len)
+			return -EINVAL;
+	}
+
 	/* Saturate vertical and horizontal timings at maximum values */
 	var->vsync_len = min_t(u32, var->vsync_len,
 			(ATMEL_LCDC_VPW >> ATMEL_LCDC_VPW_OFFSET) + 1);
-- 
1.5.2.5
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Linux-fbdev-devel mailing list
Linux-fbdev-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help