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 c76e663..8257958 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;
 }