From: "Antonino A. Daplas" 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 Signed-off-by: Andrew Morton --- drivers/video/aty/mach64_accel.c | 10 ---------- 1 files changed, 10 deletions(-) diff -puN drivers/video/aty/mach64_accel.c~atyfb-remove-unneeded-calls-to-wait_for_idle drivers/video/aty/mach64_accel.c --- devel/drivers/video/aty/mach64_accel.c~atyfb-remove-unneeded-calls-to-wait_for_idle 2006-04-29 00:04:28.000000000 -0700 +++ devel-akpm/drivers/video/aty/mach64_accel.c 2006-04-29 00:04:28.000000000 -0700 @@ -200,8 +200,6 @@ void atyfb_copyarea(struct fb_info *info 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 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 *inf 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 *inf } } - wait_for_idle(par); - /* restore pix_width */ wait_for_fifo(1, par); aty_st_le32(DP_PIX_WIDTH, pix_width_save, par); _