浏览代码

[media] ivtvfb: use display information in info not in var for panning

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>
Laurent Pinchart 14 年之前
父节点
当前提交
5d9c08dea0
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/media/video/ivtv/ivtvfb.c

+ 2 - 1
drivers/media/video/ivtv/ivtvfb.c

@@ -836,7 +836,8 @@ static int ivtvfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *inf
 	u32 osd_pan_index;
 	u32 osd_pan_index;
 	struct ivtv *itv = (struct ivtv *) info->par;
 	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);
 	write_reg(osd_pan_index, 0x02A0C);
 
 
 	/* Pass this info back the yuv handler */
 	/* Pass this info back the yuv handler */