aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/xgifb/XGI_main_26.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/drivers/staging/xgifb/XGI_main_26.c b/drivers/staging/xgifb/XGI_main_26.c
index 4403e5f8059..f8b88add952 100644
--- a/drivers/staging/xgifb/XGI_main_26.c
+++ b/drivers/staging/xgifb/XGI_main_26.c
@@ -1364,26 +1364,16 @@ static int XGIfb_do_set_var(struct fb_var_screeninfo *var, int isactive,
1364} 1364}
1365 1365
1366#ifdef XGIFB_PAN 1366#ifdef XGIFB_PAN
1367static int XGIfb_pan_var(struct fb_var_screeninfo *var) 1367static int XGIfb_pan_var(struct fb_var_screeninfo *var, struct fb_info *info)
1368{ 1368{
1369 unsigned int base; 1369 unsigned int base;
1370 1370
1371 /* printk("Inside pan_var"); */ 1371 /* printk("Inside pan_var"); */
1372 1372
1373 if (var->xoffset > (var->xres_virtual - var->xres)) { 1373 base = var->yoffset * info->var.xres_virtual + var->xoffset;
1374 /* printk("Pan: xo: %d xv %d xr %d\n",
1375 var->xoffset, var->xres_virtual, var->xres); */
1376 return -EINVAL;
1377 }
1378 if (var->yoffset > (var->yres_virtual - var->yres)) {
1379 /* printk("Pan: yo: %d yv %d yr %d\n",
1380 var->yoffset, var->yres_virtual, var->yres); */
1381 return -EINVAL;
1382 }
1383 base = var->yoffset * var->xres_virtual + var->xoffset;
1384 1374
1385 /* calculate base bpp dep. */ 1375 /* calculate base bpp dep. */
1386 switch (var->bits_per_pixel) { 1376 switch (info->var.bits_per_pixel) {
1387 case 16: 1377 case 16:
1388 base >>= 1; 1378 base >>= 1;
1389 break; 1379 break;
@@ -1681,9 +1671,9 @@ static int XGIfb_pan_display(struct fb_var_screeninfo *var,
1681 1671
1682 /* printk("\nInside pan_display:\n"); */ 1672 /* printk("\nInside pan_display:\n"); */
1683 1673
1684 if (var->xoffset > (var->xres_virtual - var->xres)) 1674 if (var->xoffset > (info->var.xres_virtual - info->var.xres))
1685 return -EINVAL; 1675 return -EINVAL;
1686 if (var->yoffset > (var->yres_virtual - var->yres)) 1676 if (var->yoffset > (info->var.yres_virtual - info->var.yres))
1687 return -EINVAL; 1677 return -EINVAL;
1688 1678
1689 if (var->vmode & FB_VMODE_YWRAP) { 1679 if (var->vmode & FB_VMODE_YWRAP) {
@@ -1696,7 +1686,7 @@ static int XGIfb_pan_display(struct fb_var_screeninfo *var,
1696 > info->var.yres_virtual) 1686 > info->var.yres_virtual)
1697 return -EINVAL; 1687 return -EINVAL;
1698 } 1688 }
1699 err = XGIfb_pan_var(var); 1689 err = XGIfb_pan_var(var, info);
1700 if (err < 0) 1690 if (err < 0)
1701 return err; 1691 return err;
1702 1692