video: mb862xxfb: correct fix.smem_len field initialization
authorAnatolij Gustschin <agust@denx.de>
Fri, 13 May 2011 09:05:08 +0000 (11:05 +0200)
committerAnatolij Gustschin <agust@denx.de>
Tue, 24 May 2011 14:28:51 +0000 (16:28 +0200)
Initialize smem_len field to the actual frame buffer size and
not to the whole video RAM size. This prevents overwriting
other video memory (which could be used by other layers, cursors
or accelerated drivers) by frame buffer applications relying on
fix.smem_len.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
drivers/video/mb862xx/mb862xxfb.c

index c76e663a6cd41a6ab43721174bf5e08b0cb0f095..825795894daa1dfcf6dd110ad527f282841a3312 100644 (file)
@@ -336,7 +336,6 @@ static int mb862xxfb_init_fbinfo(struct fb_info *fbi)
 
        strcpy(fbi->fix.id, DRV_NAME);
        fbi->fix.smem_start = (unsigned long)par->fb_base_phys;
-       fbi->fix.smem_len = par->mapped_vram;
        fbi->fix.mmio_start = (unsigned long)par->mmio_base_phys;
        fbi->fix.mmio_len = par->mmio_len;
        fbi->fix.accel = FB_ACCEL_NONE;
@@ -420,6 +419,7 @@ static int mb862xxfb_init_fbinfo(struct fb_info *fbi)
                         FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR;
        fbi->fix.line_length = (fbi->var.xres_virtual *
                                fbi->var.bits_per_pixel) / 8;
+       fbi->fix.smem_len = fbi->fix.line_length * fbi->var.yres_virtual;
        return 0;
 }