From 8b3cc4cd20877683fdeec037b6288162ac2b1a59 Mon Sep 17 00:00:00 2001 From: Krzysztof Helt Date: Wed, 23 Jul 2008 21:31:07 -0700 Subject: [PATCH] --- yaml --- r: 105519 b: refs/heads/master c: f330c4b1961d730ef15ac184e4b7f1c25847d0ae h: refs/heads/master i: 105517: 5d99e666e26457af44b456f126cff0b7e50e7419 105515: 0e2a65ce5daffc24c708e1370e769c3658f404ae 105511: 56adb81edc8504080ed6eef16a0d1e8e5087d7df 105503: 8b935effae7ac8ed323037bdf16edf612009ff86 v: v3 --- [refs] | 2 +- trunk/drivers/video/tridentfb.c | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index c0649281e254..88a9bf8c8301 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a4af1798d768ab2f12ab623e21ad68dc8c248005 +refs/heads/master: f330c4b1961d730ef15ac184e4b7f1c25847d0ae diff --git a/trunk/drivers/video/tridentfb.c b/trunk/drivers/video/tridentfb.c index 1c3f0ba4b33a..138140bdb495 100644 --- a/trunk/drivers/video/tridentfb.c +++ b/trunk/drivers/video/tridentfb.c @@ -870,8 +870,10 @@ static int tridentfb_check_var(struct fb_var_screeninfo *var, line_length = var->xres_virtual * bpp / 8; } - if (var->yres > var->yres_virtual) - var->yres_virtual = var->yres; + /* datasheet specifies how to set panning only up to 4 MB */ + if (line_length * (var->yres_virtual - var->yres) > (4 << 20)) + var->yres_virtual = ((4 << 20) / line_length) + var->yres; + if (line_length * var->yres_virtual > info->fix.smem_len) return -EINVAL; @@ -944,8 +946,6 @@ static int tridentfb_pan_display(struct fb_var_screeninfo *var, debug("enter\n"); offset = (var->xoffset + (var->yoffset * var->xres_virtual)) * var->bits_per_pixel / 32; - info->var.xoffset = var->xoffset; - info->var.yoffset = var->yoffset; set_screen_start(par, offset); debug("exit\n"); return 0; @@ -1225,7 +1225,6 @@ static int tridentfb_setcolreg(unsigned regno, unsigned red, unsigned green, ((blue & 0xFF00) >> 8); } -/* debug("exit\n"); */ return 0; }