mirror of https://gitee.com/openkylin/linux.git
arkfb: 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. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Ondrej Zajicek <santiago@crfreenet.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
3b30f9f437
commit
7b8067f202
|
@ -908,13 +908,14 @@ static int arkfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info
|
|||
unsigned int offset;
|
||||
|
||||
/* Calculate the offset */
|
||||
if (var->bits_per_pixel == 0) {
|
||||
offset = (var->yoffset / 16) * (var->xres_virtual / 2) + (var->xoffset / 2);
|
||||
if (info->var.bits_per_pixel == 0) {
|
||||
offset = (var->yoffset / 16) * (info->var.xres_virtual / 2)
|
||||
+ (var->xoffset / 2);
|
||||
offset = offset >> 2;
|
||||
} else {
|
||||
offset = (var->yoffset * info->fix.line_length) +
|
||||
(var->xoffset * var->bits_per_pixel / 8);
|
||||
offset = offset >> ((var->bits_per_pixel == 4) ? 2 : 3);
|
||||
(var->xoffset * info->var.bits_per_pixel / 8);
|
||||
offset = offset >> ((info->var.bits_per_pixel == 4) ? 2 : 3);
|
||||
}
|
||||
|
||||
/* Set the offset */
|
||||
|
|
Loading…
Reference in New Issue