[PATCH] atyfb: Remove unneeded calls to wait_for_idle
authorAntonino A. Daplas <adaplas@gmail.com>
Mon, 26 Jun 2006 07:26:31 +0000 (00:26 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 26 Jun 2006 16:58:29 +0000 (09:58 -0700)
The drawing functions of atyfb is unecessary syncing the GPU which is
affecting performance.  Remove the calls, any direct access by fbcon to the
framebuffer will always be preceeded by a call to atyfb_sync().

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/video/aty/mach64_accel.c

index c98f4a442134329e6bdef668fce1b84b4cdad4e8..1490e5e1c23292a82be44e842ee7ec1cff19cc31 100644 (file)
@@ -200,8 +200,6 @@ void atyfb_copyarea(struct fb_info *info, const struct fb_copyarea *area)
        if (!area->width || !area->height)
                return;
        if (!par->accel_flags) {
-               if (par->blitter_may_be_busy)
-                       wait_for_idle(par);
                cfb_copyarea(info, area);
                return;
        }
@@ -248,8 +246,6 @@ void atyfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
        if (!rect->width || !rect->height)
                return;
        if (!par->accel_flags) {
-               if (par->blitter_may_be_busy)
-                       wait_for_idle(par);
                cfb_fillrect(info, rect);
                return;
        }
@@ -288,14 +284,10 @@ void atyfb_imageblit(struct fb_info *info, const struct fb_image *image)
                return;
        if (!par->accel_flags ||
            (image->depth != 1 && info->var.bits_per_pixel != image->depth)) {
-               if (par->blitter_may_be_busy)
-                       wait_for_idle(par);
-
                cfb_imageblit(info, image);
                return;
        }
 
-       wait_for_idle(par);
        pix_width = pix_width_save = aty_ld_le32(DP_PIX_WIDTH, par);
        host_cntl = aty_ld_le32(HOST_CNTL, par) | HOST_BYTE_ALIGN;
 
@@ -425,8 +417,6 @@ void atyfb_imageblit(struct fb_info *info, const struct fb_image *image)
                }
        }
 
-       wait_for_idle(par);
-
        /* restore pix_width */
        wait_for_fifo(1, par);
        aty_st_le32(DP_PIX_WIDTH, pix_width_save, par);