diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2005-11-09 00:39:05 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-09 10:56:34 -0500 |
commit | 6d83b0bb8e5efda28ce4a1abc78277f1d03e50e5 (patch) | |
tree | 9fbf5337bb2428f94dcf428b3387f3198b56ad28 /drivers/video/savage/savagefb_driver.c | |
parent | 64c7c8f88559624abdbe12b5da6502e8879f8d28 (diff) |
[PATCH] savagefb: X-panning fixes
The driver unconditionally sets xpanstep to 2. However, a value of 4
empirically works better at bpp = 8, and 2 for 16 and 32. This buglet was
exposed by the rotation code.
Second fix is the unconditional call to update_start() without verifying if
the offsets are correct. Remove this call, it's not necessary and secondly,
it causes a crash with invalid values.
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/video/savage/savagefb_driver.c')
-rw-r--r-- | drivers/video/savage/savagefb_driver.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/video/savage/savagefb_driver.c b/drivers/video/savage/savagefb_driver.c index f0dfb35e3191..09e2f2841901 100644 --- a/drivers/video/savage/savagefb_driver.c +++ b/drivers/video/savage/savagefb_driver.c | |||
@@ -1315,10 +1315,14 @@ static void savagefb_set_fix(struct fb_info *info) | |||
1315 | info->fix.line_length = info->var.xres_virtual * | 1315 | info->fix.line_length = info->var.xres_virtual * |
1316 | info->var.bits_per_pixel / 8; | 1316 | info->var.bits_per_pixel / 8; |
1317 | 1317 | ||
1318 | if (info->var.bits_per_pixel == 8) | 1318 | if (info->var.bits_per_pixel == 8) { |
1319 | info->fix.visual = FB_VISUAL_PSEUDOCOLOR; | 1319 | info->fix.visual = FB_VISUAL_PSEUDOCOLOR; |
1320 | else | 1320 | info->fix.xpanstep = 4; |
1321 | } else { | ||
1321 | info->fix.visual = FB_VISUAL_TRUECOLOR; | 1322 | info->fix.visual = FB_VISUAL_TRUECOLOR; |
1323 | info->fix.xpanstep = 2; | ||
1324 | } | ||
1325 | |||
1322 | } | 1326 | } |
1323 | 1327 | ||
1324 | #if defined(CONFIG_FB_SAVAGE_ACCEL) | 1328 | #if defined(CONFIG_FB_SAVAGE_ACCEL) |
@@ -1363,7 +1367,6 @@ static int savagefb_set_par (struct fb_info *info) | |||
1363 | par->minClock = 10000; | 1367 | par->minClock = 10000; |
1364 | 1368 | ||
1365 | savagefb_set_par_int (par); | 1369 | savagefb_set_par_int (par); |
1366 | savagefb_update_start (par, var); | ||
1367 | fb_set_cmap (&info->cmap, info); | 1370 | fb_set_cmap (&info->cmap, info); |
1368 | savagefb_set_fix(info); | 1371 | savagefb_set_fix(info); |
1369 | savagefb_set_clip(info); | 1372 | savagefb_set_clip(info); |
@@ -1873,7 +1876,6 @@ static int __devinit savage_init_fb_info (struct fb_info *info, | |||
1873 | 1876 | ||
1874 | info->fix.type = FB_TYPE_PACKED_PIXELS; | 1877 | info->fix.type = FB_TYPE_PACKED_PIXELS; |
1875 | info->fix.type_aux = 0; | 1878 | info->fix.type_aux = 0; |
1876 | info->fix.xpanstep = 2; | ||
1877 | info->fix.ypanstep = 1; | 1879 | info->fix.ypanstep = 1; |
1878 | info->fix.ywrapstep = 0; | 1880 | info->fix.ywrapstep = 0; |
1879 | info->fix.accel = id->driver_data; | 1881 | info->fix.accel = id->driver_data; |