From: "Antonino A. Daplas" <adaplas@hotpop.com>

With David Eger's patch for advertising hardware capabilities to fbcon,
only a few drivers so far have been converted to do just that.  As a
result, scrolling speed of some drivers will not be optimal
(SCROLL_REDRAW).  The patch adds the correct flags for all drivers (except
for matroxfb -leave this to Petr-, and a few drivers that are not ported
yet to 2.6).

*Majority of changes is FBINFO_FLAG_DEFAULT -> FBINFO_DEFAULT

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/video/68328fb.c     |    2 +-
 25-akpm/drivers/video/acornfb.c     |    2 +-
 25-akpm/drivers/video/amifb.c       |    5 ++++-
 25-akpm/drivers/video/asiliantfb.c  |    2 +-
 25-akpm/drivers/video/bw2.c         |    2 +-
 25-akpm/drivers/video/cg14.c        |    2 +-
 25-akpm/drivers/video/cg3.c         |    2 +-
 25-akpm/drivers/video/cg6.c         |    3 ++-
 25-akpm/drivers/video/chipsfb.c     |    2 +-
 25-akpm/drivers/video/clps711xfb.c  |    2 +-
 25-akpm/drivers/video/controlfb.c   |    2 +-
 25-akpm/drivers/video/cyber2000fb.c |    2 +-
 25-akpm/drivers/video/epson1355fb.c |    2 +-
 25-akpm/drivers/video/ffb.c         |    2 +-
 25-akpm/drivers/video/fm2fb.c       |    2 +-
 25-akpm/drivers/video/g364fb.c      |    2 +-
 25-akpm/drivers/video/gbefb.c       |    2 +-
 25-akpm/drivers/video/hgafb.c       |    2 +-
 25-akpm/drivers/video/hitfb.c       |    2 +-
 25-akpm/drivers/video/hpfb.c        |    2 +-
 25-akpm/drivers/video/igafb.c       |    2 +-
 25-akpm/drivers/video/imsttfb.c     |    5 ++++-
 25-akpm/drivers/video/kyro/fbdev.c  |    2 +-
 25-akpm/drivers/video/leo.c         |    2 +-
 25-akpm/drivers/video/macfb.c       |    2 +-
 25-akpm/drivers/video/maxinefb.c    |    2 +-
 25-akpm/drivers/video/neofb.c       |    6 +++++-
 25-akpm/drivers/video/offb.c        |    2 +-
 25-akpm/drivers/video/p9100.c       |    2 +-
 25-akpm/drivers/video/platinumfb.c  |    2 +-
 25-akpm/drivers/video/pm2fb.c       |    3 ++-
 25-akpm/drivers/video/pmag-ba-fb.c  |    2 +-
 25-akpm/drivers/video/pmagb-b-fb.c  |    2 +-
 25-akpm/drivers/video/pvr2fb.c      |    2 +-
 25-akpm/drivers/video/pxafb.c       |    2 +-
 25-akpm/drivers/video/q40fb.c       |    2 +-
 25-akpm/drivers/video/radeonfb.c    |    2 +-
 25-akpm/drivers/video/sa1100fb.c    |    2 +-
 25-akpm/drivers/video/sgivwfb.c     |    2 +-
 25-akpm/drivers/video/sstfb.c       |    2 +-
 25-akpm/drivers/video/stifb.c       |    2 +-
 25-akpm/drivers/video/tcx.c         |    2 +-
 25-akpm/drivers/video/tdfxfb.c      |    6 +++++-
 25-akpm/drivers/video/tgafb.c       |    3 ++-
 25-akpm/drivers/video/tridentfb.c   |    5 ++++-
 25-akpm/drivers/video/tx3912fb.c    |    2 +-
 25-akpm/drivers/video/valkyriefb.c  |    2 +-
 47 files changed, 67 insertions(+), 47 deletions(-)

diff -puN drivers/video/68328fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/68328fb.c
--- 25/drivers/video/68328fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.013052376 -0700
+++ 25-akpm/drivers/video/68328fb.c	2004-08-06 22:10:46.083041736 -0700
@@ -466,7 +466,7 @@ int __init mc68x328fb_init(void)
 		fb_info.var.red.offset = fb_info.var.green.offset = fb_info.var.blue.offset = 0;
 	}
 	fb_info.pseudo_palette = &mc68x328fb_pseudo_palette;
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 
 	fb_alloc_cmap(&fb_info.cmap, 256, 0);
 
diff -puN drivers/video/acornfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/acornfb.c
--- 25/drivers/video/acornfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.015052072 -0700
+++ 25-akpm/drivers/video/acornfb.c	2004-08-06 22:10:46.084041584 -0700
@@ -1010,7 +1010,7 @@ static void __init acornfb_init_fbinfo(v
 	first = 0;
 
 	fb_info.fbops		= &acornfb_ops;
-	fb_info.flags		= FBINFO_FLAG_DEFAULT;
+	fb_info.flags		= FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 	fb_info.pseudo_palette	= current_par.pseudo_palette;
 
 	strcpy(fb_info.fix.id, "Acorn");
diff -puN drivers/video/amifb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/amifb.c
--- 25/drivers/video/amifb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.017051768 -0700
+++ 25-akpm/drivers/video/amifb.c	2004-08-06 22:10:46.087041128 -0700
@@ -1307,6 +1307,8 @@ static int amifb_set_par(struct fb_info 
 		info->fix.ywrapstep = 1;
 		info->fix.xpanstep = 0;
 		info->fix.ypanstep = 0;
+		info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YWRAP |
+		    FBINFO_READS_FAST; /* override SCROLL_REDRAW */
 	} else {
 		info->fix.ywrapstep = 0;
 		if (par->vmode & FB_VMODE_SMOOTH_XPAN)
@@ -1314,6 +1316,7 @@ static int amifb_set_par(struct fb_info 
 		else
 			info->fix.xpanstep = 16<<maxfmode;
 		info->fix.ypanstep = 1;
+		info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 	}
 	return 0;
 }
@@ -2382,7 +2385,7 @@ default_chipset:
 
 	fb_info.fbops = &amifb_ops;
 	fb_info.par = &currentpar;
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT;
 
 	if (!fb_find_mode(&fb_info.var, &fb_info, mode_option, ami_modedb,
 			  NUM_TOTAL_MODES, &ami_modedb[defmode], 4)) {
diff -puN drivers/video/asiliantfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/asiliantfb.c
--- 25/drivers/video/asiliantfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.018051616 -0700
+++ 25-akpm/drivers/video/asiliantfb.c	2004-08-06 22:10:46.088040976 -0700
@@ -524,7 +524,7 @@ static void __init init_asiliant(struct 
 	p->fix.smem_start	= addr;
 	p->var			= asiliantfb_var;
 	p->fbops		= &asiliantfb_ops;
-	p->flags		= FBINFO_FLAG_DEFAULT;
+	p->flags		= FBINFO_DEFAULT;
 
 	fb_alloc_cmap(&p->cmap, 256, 0);
 
diff -puN drivers/video/bw2.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/bw2.c
--- 25/drivers/video/bw2.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.019051464 -0700
+++ 25-akpm/drivers/video/bw2.c	2004-08-06 22:10:46.089040824 -0700
@@ -351,7 +351,7 @@ static void bw2_init_one(struct sbus_dev
 
 	all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
+	all->info.flags = FBINFO_DEFAULT;
 	all->info.fbops = &bw2_ops;
 #if defined(CONFIG_SPARC32)
 	if (sdev)
diff -puN drivers/video/cg14.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/cg14.c
--- 25/drivers/video/cg14.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.021051160 -0700
+++ 25-akpm/drivers/video/cg14.c	2004-08-06 22:10:46.089040824 -0700
@@ -550,7 +550,7 @@ static void cg14_init_one(struct sbus_de
 	all->par.mode = MDI_8_PIX;
 	all->par.ramsize = (is_8mb ? 0x800000 : 0x400000);
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
+	all->info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 	all->info.fbops = &cg14_ops;
 	all->info.currcon = -1;
 	all->info.par = &all->par;
diff -puN drivers/video/cg3.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/cg3.c
--- 25/drivers/video/cg3.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.022051008 -0700
+++ 25-akpm/drivers/video/cg3.c	2004-08-06 22:10:46.090040672 -0700
@@ -398,7 +398,7 @@ static void cg3_init_one(struct sbus_dev
 		sbus_ioremap(&sdev->resource[0], CG3_REGS_OFFSET,
 			     sizeof(struct cg3_regs), "cg3 regs");
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
+	all->info.flags = FBINFO_DEFAULT;
 	all->info.fbops = &cg3_ops;
 #ifdef CONFIG_SPARC32
 	all->info.screen_base = (char *)
diff -puN drivers/video/cg6.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/cg6.c
--- 25/drivers/video/cg6.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.023050856 -0700
+++ 25-akpm/drivers/video/cg6.c	2004-08-06 22:10:46.090040672 -0700
@@ -712,7 +712,8 @@ static void cg6_init_one(struct sbus_dev
 		sbus_ioremap(&sdev->resource[0], CG6_FHC_OFFSET,
 			     sizeof(u32), "cgsix fhc");
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
+	all->info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_IMAGEBLIT |
+                          FBINFO_HWACCEL_COPYAREA | FBINFO_HWACCEL_FILLRECT;
 	all->info.fbops = &cg6_ops;
 #ifdef CONFIG_SPARC32
 	all->info.screen_base = (char *)
diff -puN drivers/video/chipsfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/chipsfb.c
--- 25/drivers/video/chipsfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.025050552 -0700
+++ 25-akpm/drivers/video/chipsfb.c	2004-08-06 22:10:46.091040520 -0700
@@ -362,7 +362,7 @@ static void __init init_chips(struct fb_
 	p->var = chipsfb_var;
 
 	p->fbops = &chipsfb_ops;
-	p->flags = FBINFO_FLAG_DEFAULT;
+	p->flags = FBINFO_DEFAULT;
 
 	fb_alloc_cmap(&p->cmap, 256, 0);
 
diff -puN drivers/video/clps711xfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/clps711xfb.c
--- 25/drivers/video/clps711xfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.026050400 -0700
+++ 25-akpm/drivers/video/clps711xfb.c	2004-08-06 22:10:46.092040368 -0700
@@ -372,7 +372,7 @@ int __init clps711xfb_init(void)
 	strcpy(cfb->fix.id, "clps711x");
 
 	cfb->fbops		= &clps7111fb_ops;
-	cfb->flags		= FBINFO_FLAG_DEFAULT;
+	cfb->flags		= FBINFO_DEFAULT;
 
 	clps711x_guess_lcd_params(cfb);
 
diff -puN drivers/video/controlfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/controlfb.c
--- 25/drivers/video/controlfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.028050096 -0700
+++ 25-akpm/drivers/video/controlfb.c	2004-08-06 22:10:46.092040368 -0700
@@ -1010,7 +1010,7 @@ static void __init control_init_info(str
 	info->par = &p->par;
 	info->fbops = &controlfb_ops;
 	info->pseudo_palette = p->pseudo_palette;
-        info->flags = FBINFO_FLAG_DEFAULT;
+        info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 	info->screen_base = (char *) p->frame_buffer + CTRLFB_OFF;
 
 	fb_alloc_cmap(&info->cmap, 256, 0);
diff -puN drivers/video/cyber2000fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/cyber2000fb.c
--- 25/drivers/video/cyber2000fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.029049944 -0700
+++ 25-akpm/drivers/video/cyber2000fb.c	2004-08-06 22:10:46.094040064 -0700
@@ -1281,7 +1281,7 @@ cyberpro_alloc_fb_info(unsigned int id, 
 	cfb->fb.var.accel_flags	= FB_ACCELF_TEXT;
 
 	cfb->fb.fbops		= &cyber2000fb_ops;
-	cfb->fb.flags		= FBINFO_FLAG_DEFAULT;
+	cfb->fb.flags		= FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 	cfb->fb.pseudo_palette	= (void *)(cfb + 1);
 
 	fb_alloc_cmap(&cfb->fb.cmap, NR_PALETTE, 0);
diff -puN drivers/video/epson1355fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/epson1355fb.c
--- 25/drivers/video/epson1355fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.031049640 -0700
+++ 25-akpm/drivers/video/epson1355fb.c	2004-08-06 22:10:46.094040064 -0700
@@ -507,7 +507,7 @@ int __init e1355fb_init(void)
 	fb_info.gen.parsize = sizeof(struct e1355_par);
 	fb_info.gen.info.switch_con = &fbgen_switch;
 	fb_info.gen.info.updatevar = &fbgen_update_var;
-	fb_info.gen.info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.gen.info.flags = FBINFO_DEFAULT;
 	/* This should give a reasonable default video mode */
 	fbgen_get_var(&disp.var, -1, &fb_info.gen.info);
 	fbgen_do_set_var(&disp.var, 1, &fb_info.gen);
diff -puN drivers/video/ffb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/ffb.c
--- 25/drivers/video/ffb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.032049488 -0700
+++ 25-akpm/drivers/video/ffb.c	2004-08-06 22:10:46.095039912 -0700
@@ -1027,7 +1027,7 @@ static void ffb_init_one(int node, int p
 	all->par.prom_node = node;
 	all->par.prom_parent_node = parent;
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
+	all->info.flags = FBINFO_DEFAULT;
 	all->info.fbops = &ffb_ops;
 	all->info.screen_base = (char *) all->par.physbase + FFB_DFB24_POFF;
 	all->info.currcon = -1;
diff -puN drivers/video/fm2fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/fm2fb.c
--- 25/drivers/video/fm2fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.034049184 -0700
+++ 25-akpm/drivers/video/fm2fb.c	2004-08-06 22:10:46.096039760 -0700
@@ -280,7 +280,7 @@ static int __devinit fm2fb_probe(struct 
 	info->pseudo_palette = info->par;
 	info->par = NULL;
 	info->fix = fb_fix;
-	info->flags = FBINFO_FLAG_DEFAULT;
+	info->flags = FBINFO_DEFAULT;
 
 	if (register_framebuffer(info) < 0) {
 		fb_dealloc_cmap(&info->cmap);
diff -puN drivers/video/g364fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/g364fb.c
--- 25/drivers/video/g364fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.035049032 -0700
+++ 25-akpm/drivers/video/g364fb.c	2004-08-06 22:10:46.096039760 -0700
@@ -241,7 +241,7 @@ int __init g364fb_init(void)
 	fb_info.screen_base = (char *) G364_MEM_BASE;	/* virtual kernel address */
 	fb_info.var = fb_var;
 	fb_info.fix = fb_fix;
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 
 	fb_alloc_cmap(&fb_info.cmap, 255, 0);
 
diff -puN drivers/video/gbefb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/gbefb.c
--- 25/drivers/video/gbefb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.037048728 -0700
+++ 25-akpm/drivers/video/gbefb.c	2004-08-06 22:10:46.097039608 -0700
@@ -1135,7 +1135,7 @@ int __init gbefb_init(void)
 	fb_info.currcon = -1;
 	fb_info.fbops = &gbefb_ops;
 	fb_info.pseudo_palette = pseudo_palette;
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT;
 	fb_info.screen_base = gbe_mem;
 	fb_alloc_cmap(&fb_info.cmap, 256, 0);
 
diff -puN drivers/video/hgafb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/hgafb.c
--- 25/drivers/video/hgafb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.038048576 -0700
+++ 25-akpm/drivers/video/hgafb.c	2004-08-06 22:10:46.098039456 -0700
@@ -558,7 +558,7 @@ int __init hgafb_init(void)
 	hga_fix.smem_start = VGA_MAP_MEM(hga_vram_base);
 	hga_fix.smem_len = hga_vram_len;
 
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 	fb_info.var = hga_default_var;
 	fb_info.fix = hga_fix;
 	fb_info.monspecs.hfmin = 0;
diff -puN drivers/video/hitfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/hitfb.c
--- 25/drivers/video/hitfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.039048424 -0700
+++ 25-akpm/drivers/video/hitfb.c	2004-08-06 22:10:46.098039456 -0700
@@ -321,7 +321,7 @@ int __init hitfb_init(void)
 	fb_info.var = hitfb_var;
 	fb_info.fix = hitfb_fix;
 	fb_info.pseudo_palette = pseudo_palette;
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 
 	fb_info.screen_base = (void *)hitfb_fix.smem_start;
 
diff -puN drivers/video/hpfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/hpfb.c
--- 25/drivers/video/hpfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.041048120 -0700
+++ 25-akpm/drivers/video/hpfb.c	2004-08-06 22:10:46.099039304 -0700
@@ -151,7 +151,7 @@ int __init hpfb_init_one(unsigned long b
 	 *	Let there be consoles..
 	 */
 	fb_info.fbops = &hpfb_ops;
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT;
 	fb_info.var   = hpfb_defined;
 	fb_info.fix   = hpfb_fix;
 	fb_info.screen_base = (char *)hpfb_fix.smem_start;	// FIXME
diff -puN drivers/video/igafb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/igafb.c
--- 25/drivers/video/igafb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.042047968 -0700
+++ 25-akpm/drivers/video/igafb.c	2004-08-06 22:10:46.099039304 -0700
@@ -357,7 +357,7 @@ static int __init iga_init(struct fb_inf
                 video_cmap_len = 256;
 
 	info->fbops = &igafb_ops;
-	info->flags = FBINFO_FLAG_DEFAULT;
+	info->flags = FBINFO_DEFAULT;
 
 	fb_alloc_cmap(&info->cmap, video_cmap_len, 0);
 
diff -puN drivers/video/imsttfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/imsttfb.c
--- 25/drivers/video/imsttfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.044047664 -0700
+++ 25-akpm/drivers/video/imsttfb.c	2004-08-06 22:10:46.100039152 -0700
@@ -1442,7 +1442,10 @@ init_imstt(struct fb_info *info)
 	info->var.pixclock = 1000000 / getclkMHz(par);
 
 	info->fbops = &imsttfb_ops;
-	info->flags = FBINFO_FLAG_DEFAULT;
+	info->flags = FBINFO_DEFAULT |
+                      FBINFO_HWACCEL_COPYAREA |
+	              FBINFO_HWACCEL_FILLRECT |
+	              FBINFO_HWACCEL_YPAN;
 
 	fb_alloc_cmap(&info->cmap, 0, 0);
 
diff -puN drivers/video/kyro/fbdev.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/kyro/fbdev.c
--- 25/drivers/video/kyro/fbdev.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.045047512 -0700
+++ 25-akpm/drivers/video/kyro/fbdev.c	2004-08-06 22:10:46.101039000 -0700
@@ -712,7 +712,7 @@ static int __devinit kyrofb_probe(struct
 	info->fix		= kyro_fix;
 	info->par		= currentpar;
 	info->pseudo_palette	= (void *)(currentpar + 1);
-	info->flags		= FBINFO_FLAG_DEFAULT;
+	info->flags		= FBINFO_DEFAULT;
 
 	SetCoreClockPLL(deviceInfo.pSTGReg, pdev);
 
diff -puN drivers/video/leo.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/leo.c
--- 25/drivers/video/leo.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.046047360 -0700
+++ 25-akpm/drivers/video/leo.c	2004-08-06 22:10:46.102038848 -0700
@@ -588,7 +588,7 @@ static void leo_init_one(struct sbus_dev
 		sbus_ioremap(&sdev->resource[0], LEO_OFF_LX_CURSOR,
 			     sizeof(struct leo_cursor), "leolx cursor");
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
+	all->info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 	all->info.fbops = &leo_ops;
 	all->info.currcon = -1;
 	all->info.par = &all->par;
diff -puN drivers/video/macfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/macfb.c
--- 25/drivers/video/macfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.048047056 -0700
+++ 25-akpm/drivers/video/macfb.c	2004-08-06 22:10:46.103038696 -0700
@@ -950,7 +950,7 @@ void __init macfb_init(void)
 	fb_info.var		= macfb_defined;
 	fb_info.fix		= macfb_fix;
 	fb_info.pseudo_palette	= pseudo_palette;
-	fb_info.flags		= FBINFO_FLAG_DEFAULT;
+	fb_info.flags		= FBINFO_DEFAULT;
 
 	fb_alloc_cmap(&fb_info.cmap, video_cmap_len, 0);
 	
diff -puN drivers/video/maxinefb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/maxinefb.c
--- 25/drivers/video/maxinefb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.049046904 -0700
+++ 25-akpm/drivers/video/maxinefb.c	2004-08-06 22:10:46.103038696 -0700
@@ -159,7 +159,7 @@ int __init maxinefb_init(void)
 	fb_info.screen_base = (char *) maxinefb_fix.smem_start;
 	fb_info.var = maxinefb_defined;
 	fb_info.fix = maxinefb_fix;
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT;
 
 	fb_alloc_cmap(&fb_info.cmap, 256, 0);
 
diff -puN drivers/video/neofb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/neofb.c
--- 25/drivers/video/neofb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.051046600 -0700
+++ 25-akpm/drivers/video/neofb.c	2004-08-06 22:10:46.105038392 -0700
@@ -2055,7 +2055,11 @@ static struct fb_info *__devinit neo_all
 	info->fix.accel = id->driver_data;
 
 	info->fbops = &neofb_ops;
-	info->flags = FBINFO_FLAG_DEFAULT;
+	info->flags = FBINFO_DEFAULT |
+	              FBINFO_HWACCEL_IMAGEBLIT |
+                      FBINFO_HWACCEL_FILLRECT |
+                      FBINFO_HWACCEL_COPYAREA |
+                      FBINFO_HWACCEL_YPAN;
 	info->pseudo_palette = (void *) (par + 1);
 	return info;
 }
diff -puN drivers/video/offb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/offb.c
--- 25/drivers/video/offb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.052046448 -0700
+++ 25-akpm/drivers/video/offb.c	2004-08-06 22:10:46.105038392 -0700
@@ -527,7 +527,7 @@ static void __init offb_init_fb(const ch
 	info->screen_base = ioremap(address, fix->smem_len);
 	info->par = par;
 	info->pseudo_palette = (void *) (info + 1);
-	info->flags = FBINFO_FLAG_DEFAULT;
+	info->flags = FBINFO_DEFAULT;
 
 	fb_alloc_cmap(&info->cmap, 256, 0);
 
diff -puN drivers/video/p9100.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/p9100.c
--- 25/drivers/video/p9100.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.053046296 -0700
+++ 25-akpm/drivers/video/p9100.c	2004-08-06 22:10:46.106038240 -0700
@@ -297,7 +297,7 @@ static void p9100_init_one(struct sbus_d
 		sbus_ioremap(&sdev->resource[0], 0,
 			     sizeof(struct p9100_regs), "p9100 regs");
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
+	all->info.flags = FBINFO_DEFAULT;
 	all->info.fbops = &p9100_ops;
 #ifdef CONFIG_SPARC32
 	all->info.screen_base = (char *)
diff -puN drivers/video/platinumfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/platinumfb.c
--- 25/drivers/video/platinumfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.055045992 -0700
+++ 25-akpm/drivers/video/platinumfb.c	2004-08-06 22:10:46.106038240 -0700
@@ -311,7 +311,7 @@ static void __devinit platinum_init_info
 	/* Fill fb_info */
 	info->fbops = &platinumfb_ops;
 	info->pseudo_palette = pinfo->pseudo_palette;
-        info->flags = FBINFO_FLAG_DEFAULT;
+        info->flags = FBINFO_DEFAULT;
 	info->screen_base = (char *) pinfo->frame_buffer + 0x20;
 
 	fb_alloc_cmap(&info->cmap, 256, 0);
diff -puN drivers/video/pm2fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/pm2fb.c
--- 25/drivers/video/pm2fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.056045840 -0700
+++ 25-akpm/drivers/video/pm2fb.c	2004-08-06 22:10:46.107038088 -0700
@@ -1124,7 +1124,8 @@ static int __devinit pm2fb_probe(struct 
 	info->fbops		= &pm2fb_ops;
 	info->fix		= pm2fb_fix; 	
 	info->pseudo_palette	= (void *)(default_par + 1); 
-	info->flags		= FBINFO_FLAG_DEFAULT;
+	info->flags		= FBINFO_DEFAULT |
+                                  FBINFO_HWACCEL_YPAN;
 
 #ifndef MODULE
 	if (!mode)
diff -puN drivers/video/pmag-ba-fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/pmag-ba-fb.c
--- 25/drivers/video/pmag-ba-fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.058045536 -0700
+++ 25-akpm/drivers/video/pmag-ba-fb.c	2004-08-06 22:10:46.108037936 -0700
@@ -142,7 +142,7 @@ int __init pmagbafb_init_one(int slot)
 	info->var = pmagbafb_defined;
 	info->fix = pmagbafb_fix; 
 	info->screen_base = pmagbafb_fix.smem_start;
-	info->flags = FBINFO_FLAG_DEFAULT;
+	info->flags = FBINFO_DEFAULT;
 
 	fb_alloc_cmap(&fb_info.cmap, 256, 0);
 	
diff -puN drivers/video/pmagb-b-fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/pmagb-b-fb.c
--- 25/drivers/video/pmagb-b-fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.059045384 -0700
+++ 25-akpm/drivers/video/pmagb-b-fb.c	2004-08-06 22:10:46.108037936 -0700
@@ -145,7 +145,7 @@ int __init pmagbbfb_init_one(int slot)
 	info->var = pmagbbfb_defined;
 	info->fix = pmagbbfb_fix;
 	info->screen_base = pmagbbfb_fix.smem_start; 
-	info->flags = FBINFO_FLAG_DEFAULT;
+	info->flags = FBINFO_DEFAULT;
 
 	fb_alloc_cmap(&fb_info.cmap, 256, 0);
 
diff -puN drivers/video/pvr2fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/pvr2fb.c
--- 25/drivers/video/pvr2fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.060045232 -0700
+++ 25-akpm/drivers/video/pvr2fb.c	2004-08-06 22:10:46.109037784 -0700
@@ -795,7 +795,7 @@ static int __init pvr2fb_common_init(voi
 	fb_info->fix		= pvr2_fix;
 	fb_info->par		= currentpar;
 	fb_info->pseudo_palette	= (void *)(fb_info->par + 1);
-	fb_info->flags		= FBINFO_FLAG_DEFAULT;
+	fb_info->flags		= FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
 
 	if (video_output == VO_VGA)
 		defmode = DEFMODE_VGA;
diff -puN drivers/video/pxafb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/pxafb.c
--- 25/drivers/video/pxafb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.062044928 -0700
+++ 25-akpm/drivers/video/pxafb.c	2004-08-06 22:10:46.110037632 -0700
@@ -1040,7 +1040,7 @@ static struct pxafb_info * __init pxafb_
 	fbi->fb.var.vmode	= FB_VMODE_NONINTERLACED;
 
 	fbi->fb.fbops		= &pxafb_ops;
-	fbi->fb.flags		= FBINFO_FLAG_DEFAULT;
+	fbi->fb.flags		= FBINFO_DEFAULT;
 	fbi->fb.node		= -1;
 	fbi->fb.currcon		= -1;
 
diff -puN drivers/video/q40fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/q40fb.c
--- 25/drivers/video/q40fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.063044776 -0700
+++ 25-akpm/drivers/video/q40fb.c	2004-08-06 22:10:46.111037480 -0700
@@ -105,7 +105,7 @@ static int __init q40fb_probe(struct dev
 	info->var = q40fb_var;
 	info->fix = q40fb_fix;
 	info->fbops = &q40fb_ops;
-	info->flags = FBINFO_FLAG_DEFAULT;  /* not as module for now */
+	info->flags = FBINFO_DEFAULT;  /* not as module for now */
 	info->pseudo_palette = info->par;
 	info->par = NULL;
 	info->screen_base = (char *) q40fb_fix.smem_start;
diff -puN drivers/video/radeonfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/radeonfb.c
--- 25/drivers/video/radeonfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.065044472 -0700
+++ 25-akpm/drivers/video/radeonfb.c	2004-08-06 22:10:46.113037176 -0700
@@ -2250,7 +2250,7 @@ static int __devinit radeon_set_fbinfo (
 	info->currcon = -1;
 	info->par = rinfo;
 	info->pseudo_palette = rinfo->pseudo_palette;
-        info->flags = FBINFO_FLAG_DEFAULT;
+        info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
         info->fbops = &radeonfb_ops;
         info->screen_base = (char *)rinfo->fb_base;
 
diff -puN drivers/video/sa1100fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/sa1100fb.c
--- 25/drivers/video/sa1100fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.067044168 -0700
+++ 25-akpm/drivers/video/sa1100fb.c	2004-08-06 22:10:46.115036872 -0700
@@ -1671,7 +1671,7 @@ static struct sa1100fb_info * __init sa1
 	fbi->fb.var.vmode	= FB_VMODE_NONINTERLACED;
 
 	fbi->fb.fbops		= &sa1100fb_ops;
-	fbi->fb.flags		= FBINFO_FLAG_DEFAULT;
+	fbi->fb.flags		= FBINFO_DEFAULT;
 	fbi->fb.monspecs	= monspecs;
 	fbi->fb.currcon		= -1;
 	fbi->fb.pseudo_palette	= (fbi + 1);
diff -puN drivers/video/sgivwfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/sgivwfb.c
--- 25/drivers/video/sgivwfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.068044016 -0700
+++ 25-akpm/drivers/video/sgivwfb.c	2004-08-06 22:10:46.115036872 -0700
@@ -790,7 +790,7 @@ int __init sgivwfb_init(void)
 	fb_info.fbops = &sgivwfb_ops;
 	fb_info.pseudo_palette = pseudo_palette;
 	fb_info.par = &default_par;
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT;
 
 	fb_info.screen_base = ioremap_nocache((unsigned long) sgivwfb_mem_phys, sgivwfb_mem_size);
 	if (!fb_info.screen_base) {
diff -puN drivers/video/sstfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/sstfb.c
--- 25/drivers/video/sstfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.069043864 -0700
+++ 25-akpm/drivers/video/sstfb.c	2004-08-06 22:10:46.117036568 -0700
@@ -1473,7 +1473,7 @@ static int __devinit sstfb_probe(struct 
 	f_ddprintk("membase_phys: %#lx\n", fix->smem_start);
 	f_ddprintk("fbbase_virt: %p\n", info->screen_base);
 
-	info->flags	= FBINFO_FLAG_DEFAULT;
+	info->flags	= FBINFO_DEFAULT;
 	info->fbops	= &sstfb_ops;
 	info->currcon	= -1;
 	info->pseudo_palette = &all->pseudo_palette;
diff -puN drivers/video/stifb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/stifb.c
--- 25/drivers/video/stifb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.071043560 -0700
+++ 25-akpm/drivers/video/stifb.c	2004-08-06 22:10:46.118036416 -0700
@@ -1325,7 +1325,7 @@ stifb_init_fb(struct sti_struct *sti, in
 	strcpy(fix->id, "stifb");
 	info->fbops = &stifb_ops;
 	info->screen_base = (void*) REGION_BASE(fb,1);
-	info->flags = FBINFO_FLAG_DEFAULT;
+	info->flags = FBINFO_DEFAULT;
 	info->currcon = -1;
 
 	/* This has to been done !!! */
diff -puN drivers/video/tcx.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/tcx.c
--- 25/drivers/video/tcx.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.072043408 -0700
+++ 25-akpm/drivers/video/tcx.c	2004-08-06 22:10:46.118036416 -0700
@@ -412,7 +412,7 @@ static void tcx_init_one(struct sbus_dev
 		all->par.mmap_map[i].poff = sdev->reg_addrs[j].phys_addr;
 	}
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
+	all->info.flags = FBINFO_DEFAULT;
 	all->info.fbops = &tcx_ops;
 #ifdef CONFIG_SPARC32
 	all->info.screen_base = (char *)
diff -puN drivers/video/tdfxfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/tdfxfb.c
--- 25/drivers/video/tdfxfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.074043104 -0700
+++ 25-akpm/drivers/video/tdfxfb.c	2004-08-06 22:10:46.120036112 -0700
@@ -1253,7 +1253,11 @@ static int __devinit tdfxfb_probe(struct
 	info->fix		= tdfx_fix; 	
 	info->par		= default_par;
 	info->pseudo_palette	= (void *)(default_par + 1); 
-	info->flags		= FBINFO_FLAG_DEFAULT;
+	info->flags		= FBINFO_DEFAULT |
+                                  FBINFO_HWACCEL_COPYAREA |
+                                  FBINFO_HWACCEL_FILLRECT |
+                                  FBINFO_HWACCEL_IMAGEBLIT |
+	                          FBINFO_HWACCEL_YPAN;
 
 #ifndef MODULE
 	if (!mode_option)
diff -puN drivers/video/tgafb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/tgafb.c
--- 25/drivers/video/tgafb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.075042952 -0700
+++ 25-akpm/drivers/video/tgafb.c	2004-08-06 22:10:46.121035960 -0700
@@ -1426,7 +1426,8 @@ tgafb_pci_register(struct pci_dev *pdev,
 	pci_read_config_byte(pdev, PCI_REVISION_ID, &all->par.tga_chip_rev);
 
 	/* Setup framebuffer.  */
-	all->info.flags = FBINFO_FLAG_DEFAULT;
+	all->info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_COPYAREA |
+                          FBINFO_HWACCEL_IMAGEBLIT | FBINFO_HWACCEL_FILLRECT;
 	all->info.fbops = &tgafb_ops;
 	all->info.screen_base = (char *) all->par.tga_fb_base;
 	all->info.currcon = -1;
diff -puN drivers/video/tridentfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/tridentfb.c
--- 25/drivers/video/tridentfb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.077042648 -0700
+++ 25-akpm/drivers/video/tridentfb.c	2004-08-06 22:10:46.122035808 -0700
@@ -1149,7 +1149,10 @@ static int __devinit trident_pci_probe(s
 	fb_info.fbops = &tridentfb_ops;
 
 
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
+#ifdef CONFIG_FB_TRIDENT_ACCEL
+	fb_info.flags |= FBINFO_HWACCEL_COPYAREA | FBINFO_HWACCEL_FILLRECT;
+#endif
 	fb_info.pseudo_palette = pseudo_pal;
 
 	if (!fb_find_mode(&default_var,&fb_info,mode,NULL,0,NULL,bpp))
diff -puN drivers/video/tx3912fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/tx3912fb.c
--- 25/drivers/video/tx3912fb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.078042496 -0700
+++ 25-akpm/drivers/video/tx3912fb.c	2004-08-06 22:10:46.122035808 -0700
@@ -299,7 +299,7 @@ int __init tx3912fb_init(void)
 	fb_info.var = tx3912fb_var;
 	fb_info.fix = tx3912fb_fix;
 	fb_info.pseudo_palette = pseudo_palette;
-	fb_info.flags = FBINFO_FLAG_DEFAULT;
+	fb_info.flags = FBINFO_DEFAULT;
 
 	/* Clear the framebuffer */
 	memset((void *) fb_info.fix.smem_start, 0xff, fb_info.fix.smem_len);
diff -puN drivers/video/valkyriefb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities drivers/video/valkyriefb.c
--- 25/drivers/video/valkyriefb.c~fbdev-attn-maintainers-set-correct-hardware-capabilities	2004-08-06 22:10:46.080042192 -0700
+++ 25-akpm/drivers/video/valkyriefb.c	2004-08-06 22:10:46.123035656 -0700
@@ -540,7 +540,7 @@ static void __init valkyrie_init_info(st
 {
 	info->fbops = &valkyriefb_ops;
 	info->screen_base = (char *) p->frame_buffer + 0x1000;
-	info->flags = FBINFO_FLAG_DEFAULT;
+	info->flags = FBINFO_DEFAULT;
 	info->pseudo_palette = p->pseudo_palette;
 	fb_alloc_cmap(&info->cmap, 256, 0);
 	info->par = &p->par;
_