[media] ivtvfb: use display information in info not in var for panning
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 25 May 2011 09:41:23 +0000 (06:41 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 1 Jun 2011 11:45:19 +0000 (08:45 -0300)
We must not use any information in the passed var besides xoffset,
yoffset and vmode as otherwise applications might abuse it. Also use the
aligned fix.line_length and not the (possible) unaligned xres_virtual.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/ivtv/ivtvfb.c

index 17247451c69326f3159cb6913e7eabaa152d72fc..2d5a97431c0a30fd238f6dd3f0eeab9be0670f1f 100644 (file)
@@ -836,7 +836,8 @@ static int ivtvfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *inf
        u32 osd_pan_index;
        struct ivtv *itv = (struct ivtv *) info->par;
 
-       osd_pan_index = (var->xoffset + (var->yoffset * var->xres_virtual))*var->bits_per_pixel/8;
+       osd_pan_index = var->yoffset * info->fix.line_length
+                     + var->xoffset * info->var.bits_per_pixel / 8;
        write_reg(osd_pan_index, 0x02A0C);
 
        /* Pass this info back the yuv handler */