From: Krzysztof Helt Date: Thu, 24 Jul 2008 04:31:03 +0000 (-0700) Subject: tridentfb: acceleration bug fixes X-Git-Tag: v2.6.27-rc1~584 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c86a0c26fbe8ea218f7a267645679fb78aba8a3;p=linux-2.6 tridentfb: acceleration bug fixes This patch fixes two problems when acceleration is enabled: - bit for bitblt direction is corrected so scrolling down works as expected on 3DImage chips - initialization of acceleration is done later this helps with initial console malfuntion (on Blade3D chips) well documented here: http://marc.info/?l=linux-fbdev-users&m=111386953124478&w=2 Signed-off-by: Krzysztof Helt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/video/tridentfb.c b/drivers/video/tridentfb.c index 4a1258f950..d896dee7b4 100644 --- a/drivers/video/tridentfb.c +++ b/drivers/video/tridentfb.c @@ -395,7 +395,7 @@ static void image_fill_rect(struct tridentfb_par *par, static void image_copy_rect(struct tridentfb_par *par, u32 x1, u32 y1, u32 x2, u32 y2, u32 w, u32 h) { - int direction = 2; + int direction = 0x4; u32 s1 = point(x1, y1); u32 s2 = point(x1 + w - 1, y1 + h - 1); u32 d1 = point(x2, y2); @@ -1075,10 +1075,6 @@ static int tridentfb_set_par(struct fb_info *info) /* enable GE for text acceleration */ write3X4(par, GraphEngReg, 0x80); -#ifdef CONFIG_FB_TRIDENT_ACCEL - par->init_accel(par, info->var.xres_virtual, bpp); -#endif - switch (bpp) { case 8: tmp = 0x00; @@ -1173,6 +1169,10 @@ static int tridentfb_set_par(struct fb_info *info) set_number_of_lines(par, info->var.yres); info->fix.line_length = info->var.xres_virtual * bpp / 8; set_lwidth(par, info->fix.line_length / 8); +#ifdef CONFIG_FB_TRIDENT_ACCEL + par->init_accel(par, info->var.xres_virtual, bpp); +#endif + info->fix.visual = (bpp == 8) ? FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR; info->cmap.len = (bpp == 8) ? 256 : 16; debug("exit\n");