From: "Antonino A. Daplas" According to Jon Smirl, filling in the field fb_cursor with soft_cursor for drivers that do not support hardware cursors is redundant. The soft_cursor function is usable by all drivers because it is just a wrapper around fb_imageblit. And because soft_cursor is an fbcon-specific hook, the file is moved to the console directory. Thus, drivers that do not support hardware cursors can leave the fb_cursor field blank. For drivers that do, they can fill up this field with their own version. The end result is a smaller code size. And if the framebuffer console is not loaded, module/kernel size is also reduced because the soft_cursor module will also not be loaded. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton --- drivers/video/68328fb.c | 1 drivers/video/Kconfig | 79 --------------------------------- drivers/video/Makefile | 1 drivers/video/acornfb.c | 1 drivers/video/amba-clcd.c | 1 drivers/video/amifb.c | 1 drivers/video/arcfb.c | 1 drivers/video/asiliantfb.c | 1 drivers/video/aty/aty128fb.c | 1 drivers/video/aty/atyfb_base.c | 1 drivers/video/aty/radeon_base.c | 1 drivers/video/bw2.c | 1 drivers/video/cg14.c | 1 drivers/video/cg3.c | 1 drivers/video/cg6.c | 1 drivers/video/chipsfb.c | 1 drivers/video/cirrusfb.c | 1 drivers/video/clps711xfb.c | 1 drivers/video/console/Makefile | 2 drivers/video/console/bitblit.c | 7 ++ drivers/video/console/fbcon.h | 2 drivers/video/console/softcursor.c | 72 ++++++++++++++++++++++++++++++ drivers/video/controlfb.c | 1 drivers/video/cyber2000fb.c | 1 drivers/video/cyblafb.c | 1 drivers/video/dnfb.c | 1 drivers/video/epson1355fb.c | 1 drivers/video/ffb.c | 3 - drivers/video/fm2fb.c | 1 drivers/video/gbefb.c | 1 drivers/video/geode/Kconfig | 1 drivers/video/geode/gx1fb_core.c | 1 drivers/video/hitfb.c | 1 drivers/video/hpfb.c | 1 drivers/video/imsttfb.c | 1 drivers/video/imxfb.c | 1 drivers/video/intelfb/intelfbdrv.c | 2 drivers/video/kyro/fbdev.c | 1 drivers/video/leo.c | 1 drivers/video/macfb.c | 1 drivers/video/matrox/matroxfb_accel.c | 2 drivers/video/matrox/matroxfb_crtc2.c | 1 drivers/video/maxinefb.c | 1 drivers/video/neofb.c | 1 drivers/video/nvidia/nvidia.c | 2 drivers/video/offb.c | 1 drivers/video/p9100.c | 1 drivers/video/platinumfb.c | 1 drivers/video/pm2fb.c | 1 drivers/video/pmag-ba-fb.c | 1 drivers/video/pmagb-b-fb.c | 1 drivers/video/pvr2fb.c | 1 drivers/video/pxafb.c | 1 drivers/video/q40fb.c | 1 drivers/video/radeonfb.c | 1 drivers/video/s1d13xxxfb.c | 1 drivers/video/s3c2410fb.c | 1 drivers/video/sa1100fb.c | 1 drivers/video/savage/savagefb_driver.c | 1 drivers/video/sgivwfb.c | 1 drivers/video/sis/sis_main.c | 2 drivers/video/skeletonfb.c | 9 +-- drivers/video/softcursor.c | 72 ------------------------------ drivers/video/sstfb.c | 1 drivers/video/stifb.c | 1 drivers/video/tcx.c | 1 drivers/video/tdfxfb.c | 1 drivers/video/tgafb.c | 1 drivers/video/tridentfb.c | 1 drivers/video/tx3912fb.c | 1 drivers/video/valkyriefb.c | 1 drivers/video/vesafb.c | 1 drivers/video/vfb.c | 1 drivers/video/vga16fb.c | 1 drivers/video/w100fb.c | 1 include/linux/fb.h | 1 76 files changed, 88 insertions(+), 230 deletions(-) diff -puN drivers/video/68328fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/68328fb.c --- devel/drivers/video/68328fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/68328fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -113,7 +113,6 @@ static struct fb_ops mc68x328fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, .fb_mmap = mc68x328fb_mmap, }; diff -puN drivers/video/acornfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/acornfb.c --- devel/drivers/video/acornfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/acornfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -926,7 +926,6 @@ static struct fb_ops acornfb_ops = { .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, .fb_mmap = acornfb_mmap, - .fb_cursor = soft_cursor, }; /* diff -puN drivers/video/amba-clcd.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/amba-clcd.c --- devel/drivers/video/amba-clcd.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/amba-clcd.c 2005-10-18 19:11:59.000000000 -0700 @@ -332,7 +332,6 @@ static struct fb_ops clcdfb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, .fb_mmap = clcdfb_mmap, }; diff -puN drivers/video/amifb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/amifb.c --- devel/drivers/video/amifb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/amifb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1185,7 +1185,6 @@ static struct fb_ops amifb_ops = { .fb_fillrect = amifb_fillrect, .fb_copyarea = amifb_copyarea, .fb_imageblit = amifb_imageblit, - .fb_cursor = soft_cursor, .fb_ioctl = amifb_ioctl, }; diff -puN drivers/video/arcfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/arcfb.c --- devel/drivers/video/arcfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/arcfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -514,7 +514,6 @@ static struct fb_ops arcfb_ops = { .fb_fillrect = arcfb_fillrect, .fb_copyarea = arcfb_copyarea, .fb_imageblit = arcfb_imageblit, - .fb_cursor = soft_cursor, .fb_ioctl = arcfb_ioctl, }; diff -puN drivers/video/asiliantfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/asiliantfb.c --- devel/drivers/video/asiliantfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/asiliantfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -106,7 +106,6 @@ static struct fb_ops asiliantfb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; /* Calculate the ratios for the dot clocks without using a single long long diff -puN drivers/video/aty/aty128fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/aty/aty128fb.c --- devel/drivers/video/aty/aty128fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/aty/aty128fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -478,7 +478,6 @@ static struct fb_ops aty128fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; #ifdef CONFIG_PMAC_BACKLIGHT diff -puN drivers/video/aty/atyfb_base.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/aty/atyfb_base.c --- devel/drivers/video/aty/atyfb_base.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/aty/atyfb_base.c 2005-10-18 19:11:59.000000000 -0700 @@ -292,7 +292,6 @@ static struct fb_ops atyfb_ops = { .fb_fillrect = atyfb_fillrect, .fb_copyarea = atyfb_copyarea, .fb_imageblit = atyfb_imageblit, - .fb_cursor = soft_cursor, #ifdef __sparc__ .fb_mmap = atyfb_mmap, #endif diff -puN drivers/video/aty/radeon_base.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/aty/radeon_base.c --- devel/drivers/video/aty/radeon_base.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/aty/radeon_base.c 2005-10-18 19:11:59.000000000 -0700 @@ -1873,7 +1873,6 @@ static struct fb_ops radeonfb_ops = { .fb_fillrect = radeonfb_fillrect, .fb_copyarea = radeonfb_copyarea, .fb_imageblit = radeonfb_imageblit, - .fb_cursor = soft_cursor, }; diff -puN drivers/video/bw2.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/bw2.c --- devel/drivers/video/bw2.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/bw2.c 2005-10-18 19:11:59.000000000 -0700 @@ -51,7 +51,6 @@ static struct fb_ops bw2_ops = { .fb_imageblit = cfb_imageblit, .fb_mmap = bw2_mmap, .fb_ioctl = bw2_ioctl, - .fb_cursor = soft_cursor, }; /* OBio addresses for the bwtwo registers */ diff -puN drivers/video/cg14.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/cg14.c --- devel/drivers/video/cg14.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/cg14.c 2005-10-18 19:11:59.000000000 -0700 @@ -49,7 +49,6 @@ static struct fb_ops cg14_ops = { .fb_imageblit = cfb_imageblit, .fb_mmap = cg14_mmap, .fb_ioctl = cg14_ioctl, - .fb_cursor = soft_cursor, }; #define CG14_MCR_INTENABLE_SHIFT 7 diff -puN drivers/video/cg3.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/cg3.c --- devel/drivers/video/cg3.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/cg3.c 2005-10-18 19:11:59.000000000 -0700 @@ -50,7 +50,6 @@ static struct fb_ops cg3_ops = { .fb_imageblit = cfb_imageblit, .fb_mmap = cg3_mmap, .fb_ioctl = cg3_ioctl, - .fb_cursor = soft_cursor, }; diff -puN drivers/video/cg6.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/cg6.c --- devel/drivers/video/cg6.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/cg6.c 2005-10-18 19:11:59.000000000 -0700 @@ -54,7 +54,6 @@ static struct fb_ops cg6_ops = { .fb_sync = cg6_sync, .fb_mmap = cg6_mmap, .fb_ioctl = cg6_ioctl, - .fb_cursor = soft_cursor, }; /* Offset of interesting structures in the OBIO space */ diff -puN drivers/video/chipsfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/chipsfb.c --- devel/drivers/video/chipsfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/chipsfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -91,7 +91,6 @@ static struct fb_ops chipsfb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; static int chipsfb_check_var(struct fb_var_screeninfo *var, diff -puN drivers/video/cirrusfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/cirrusfb.c --- devel/drivers/video/cirrusfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/cirrusfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -548,7 +548,6 @@ static struct fb_ops cirrusfb_ops = { .fb_fillrect = cirrusfb_fillrect, .fb_copyarea = cirrusfb_copyarea, .fb_imageblit = cirrusfb_imageblit, - .fb_cursor = soft_cursor, }; /*--- Hardware Specific Routines -------------------------------------------*/ diff -puN drivers/video/clps711xfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/clps711xfb.c --- devel/drivers/video/clps711xfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/clps711xfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -219,7 +219,6 @@ static struct fb_ops clps7111fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; static int diff -puN drivers/video/console/bitblit.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/console/bitblit.c --- devel/drivers/video/console/bitblit.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/console/bitblit.c 2005-10-18 19:11:59.000000000 -0700 @@ -272,6 +272,7 @@ static void bit_cursor(struct vc_data *v int w = (vc->vc_font.width + 7) >> 3, c; int y = real_y(p, vc->vc_y); int attribute, use_sw = (vc->vc_cursor_type & 0x10); + int err = 1; char *src; cursor.set = 0; @@ -408,7 +409,11 @@ static void bit_cursor(struct vc_data *v cursor.image.depth = 1; cursor.rop = ROP_XOR; - info->fbops->fb_cursor(info, &cursor); + if (info->fbops->fb_cursor) + err = info->fbops->fb_cursor(info, &cursor); + + if (err) + soft_cursor(info, &cursor); ops->cursor_reset = 0; } diff -puN drivers/video/console/fbcon.h~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/console/fbcon.h --- devel/drivers/video/console/fbcon.h~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/console/fbcon.h 2005-10-18 19:11:59.000000000 -0700 @@ -167,5 +167,5 @@ extern void fbcon_set_tileops(struct vc_ struct display *p, struct fbcon_ops *ops); #endif extern void fbcon_set_bitops(struct fbcon_ops *ops); - +extern int soft_cursor(struct fb_info *info, struct fb_cursor *cursor); #endif /* _VIDEO_FBCON_H */ diff -puN drivers/video/console/Makefile~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/console/Makefile --- devel/drivers/video/console/Makefile~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/console/Makefile 2005-10-18 19:11:59.000000000 -0700 @@ -26,7 +26,7 @@ obj-$(CONFIG_PROM_CONSOLE) += pro obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o font.o obj-$(CONFIG_VGA_CONSOLE) += vgacon.o obj-$(CONFIG_MDA_CONSOLE) += mdacon.o -obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o +obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o ifeq ($(CONFIG_FB_TILEBLITTING),y) obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += tileblit.o endif diff -puN /dev/null drivers/video/console/softcursor.c --- /dev/null 2003-09-15 06:40:47.000000000 -0700 +++ devel-akpm/drivers/video/console/softcursor.c 2005-10-18 19:11:59.000000000 -0700 @@ -0,0 +1,72 @@ +/* + * linux/drivers/video/softcursor.c -- Generic software cursor for frame buffer devices + * + * Created 14 Nov 2002 by James Simmons + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive + * for more details. + */ + +#include +#include +#include +#include +#include + +#include +#include + +int soft_cursor(struct fb_info *info, struct fb_cursor *cursor) +{ + unsigned int scan_align = info->pixmap.scan_align - 1; + unsigned int buf_align = info->pixmap.buf_align - 1; + unsigned int i, size, dsize, s_pitch, d_pitch; + struct fb_image *image; + u8 *dst, *src; + + if (info->state != FBINFO_STATE_RUNNING) + return 0; + + s_pitch = (cursor->image.width + 7) >> 3; + dsize = s_pitch * cursor->image.height; + + src = kmalloc(dsize + sizeof(struct fb_image), GFP_ATOMIC); + if (!src) + return -ENOMEM; + + image = (struct fb_image *) (src + dsize); + *image = cursor->image; + d_pitch = (s_pitch + scan_align) & ~scan_align; + + size = d_pitch * image->height + buf_align; + size &= ~buf_align; + dst = fb_get_buffer_offset(info, &info->pixmap, size); + + if (cursor->enable) { + switch (cursor->rop) { + case ROP_XOR: + for (i = 0; i < dsize; i++) + src[i] = image->data[i] ^ cursor->mask[i]; + break; + case ROP_COPY: + default: + for (i = 0; i < dsize; i++) + src[i] = image->data[i] & cursor->mask[i]; + break; + } + } else + memcpy(src, image->data, dsize); + + fb_pad_aligned_buffer(dst, d_pitch, src, s_pitch, image->height); + image->data = dst; + info->fbops->fb_imageblit(info, image); + kfree(src); + return 0; +} + +EXPORT_SYMBOL(soft_cursor); + +MODULE_AUTHOR("James Simmons "); +MODULE_DESCRIPTION("Generic software cursor"); +MODULE_LICENSE("GPL"); diff -puN drivers/video/controlfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/controlfb.c --- devel/drivers/video/controlfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/controlfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -176,7 +176,6 @@ static struct fb_ops controlfb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; diff -puN drivers/video/cyber2000fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/cyber2000fb.c --- devel/drivers/video/cyber2000fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/cyber2000fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1064,7 +1064,6 @@ static struct fb_ops cyber2000fb_ops = { .fb_fillrect = cyber2000fb_fillrect, .fb_copyarea = cyber2000fb_copyarea, .fb_imageblit = cyber2000fb_imageblit, - .fb_cursor = soft_cursor, .fb_sync = cyber2000fb_sync, }; diff -puN drivers/video/cyblafb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/cyblafb.c --- devel/drivers/video/cyblafb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/cyblafb.c 2005-10-18 19:11:59.000000000 -0700 @@ -968,7 +968,6 @@ static struct fb_ops cyblafb_ops __devin .fb_fillrect = cyblafb_fillrect, .fb_copyarea= cyblafb_copyarea, .fb_imageblit = cyblafb_imageblit, - .fb_cursor = soft_cursor, }; //========================================================================== diff -puN drivers/video/dnfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/dnfb.c --- devel/drivers/video/dnfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/dnfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -114,7 +114,6 @@ static struct fb_ops dn_fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = dnfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; struct fb_var_screeninfo dnfb_var __devinitdata = { diff -puN drivers/video/epson1355fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/epson1355fb.c --- devel/drivers/video/epson1355fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/epson1355fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -482,7 +482,6 @@ static struct fb_ops epson1355fb_fbops = .fb_imageblit = cfb_imageblit, .fb_read = epson1355fb_read, .fb_write = epson1355fb_write, - .fb_cursor = soft_cursor, }; /* ------------------------------------------------------------------------- */ diff -puN drivers/video/ffb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/ffb.c --- devel/drivers/video/ffb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/ffb.c 2005-10-18 19:11:59.000000000 -0700 @@ -57,9 +57,6 @@ static struct fb_ops ffb_ops = { .fb_sync = ffb_sync, .fb_mmap = ffb_mmap, .fb_ioctl = ffb_ioctl, - - /* XXX Use FFB hw cursor once fb cursor API is better understood... */ - .fb_cursor = soft_cursor, }; /* Register layout and definitions */ diff -puN drivers/video/fm2fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/fm2fb.c --- devel/drivers/video/fm2fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/fm2fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -172,7 +172,6 @@ static struct fb_ops fm2fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; /* diff -puN drivers/video/gbefb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/gbefb.c --- devel/drivers/video/gbefb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/gbefb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1038,7 +1038,6 @@ static struct fb_ops gbefb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; /* diff -puN drivers/video/geode/gx1fb_core.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/geode/gx1fb_core.c --- devel/drivers/video/geode/gx1fb_core.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/geode/gx1fb_core.c 2005-10-18 19:11:59.000000000 -0700 @@ -275,7 +275,6 @@ static struct fb_ops gx1fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; static struct fb_info * __init gx1fb_init_fbinfo(struct device *dev) diff -puN drivers/video/geode/Kconfig~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/geode/Kconfig --- devel/drivers/video/geode/Kconfig~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/geode/Kconfig 2005-10-18 19:11:59.000000000 -0700 @@ -14,7 +14,6 @@ config FB_GEODE_GX1 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR ---help--- Framebuffer driver for the display controller integrated into the AMD Geode GX1 processor. diff -puN drivers/video/hitfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/hitfb.c --- devel/drivers/video/hitfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/hitfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -262,7 +262,6 @@ static struct fb_ops hitfb_ops = { .fb_fillrect = hitfb_fillrect, .fb_copyarea = hitfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; int __init hitfb_init(void) diff -puN drivers/video/hpfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/hpfb.c --- devel/drivers/video/hpfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/hpfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -193,7 +193,6 @@ static struct fb_ops hpfb_ops = { .fb_fillrect = hpfb_fillrect, .fb_copyarea = hpfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, .fb_sync = hpfb_sync, }; diff -puN drivers/video/imsttfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/imsttfb.c --- devel/drivers/video/imsttfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/imsttfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1344,7 +1344,6 @@ static struct fb_ops imsttfb_ops = { .fb_fillrect = imsttfb_fillrect, .fb_copyarea = imsttfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, .fb_ioctl = imsttfb_ioctl, }; diff -puN drivers/video/imxfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/imxfb.c --- devel/drivers/video/imxfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/imxfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -298,7 +298,6 @@ static struct fb_ops imxfb_ops = { .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, .fb_blank = imxfb_blank, - .fb_cursor = soft_cursor, /* FIXME: i.MX can do hardware cursor */ }; /* diff -puN drivers/video/intelfb/intelfbdrv.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/intelfb/intelfbdrv.c --- devel/drivers/video/intelfb/intelfbdrv.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/intelfb/intelfbdrv.c 2005-10-18 19:11:59.000000000 -0700 @@ -1485,7 +1485,7 @@ intelfb_cursor(struct fb_info *info, str #endif if (!dinfo->hwcursor) - return soft_cursor(info, cursor); + return -ENODEV; intelfbhw_cursor_hide(dinfo); diff -puN drivers/video/Kconfig~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/Kconfig --- devel/drivers/video/Kconfig~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/Kconfig 2005-10-18 19:11:59.000000000 -0700 @@ -65,15 +65,6 @@ config FB_CFB_IMAGEBLIT blitting. This is used by drivers that don't provide their own (accelerated) version. -config FB_SOFT_CURSOR - tristate - depends on FB - default n - ---help--- - Include the soft_cursor function for generic software cursor support. - This is used by drivers that don't provide their own (accelerated) - version. - config FB_MACMODES tristate depends on FB @@ -114,7 +105,6 @@ config FB_CIRRUS select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR ---help--- This enables support for Cirrus Logic GD542x/543x based boards on Amiga: SD64, Piccolo, Picasso II/II+, Picasso IV, or EGS Spectrum. @@ -133,7 +123,6 @@ config FB_PM2 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the Permedia2 AGP frame buffer card from ASK, aka `Graphic Blaster Exxtreme'. There is a @@ -152,7 +141,6 @@ config FB_ARMCLCD select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This framebuffer device driver is for the ARM PrimeCell PL110 Colour LCD controller. ARM PrimeCells provide the building @@ -169,7 +157,6 @@ config FB_ACORN select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the Acorn VIDC graphics hardware found in Acorn RISC PCs and other ARM-based machines. If @@ -181,7 +168,6 @@ config FB_CLPS711X select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Say Y to enable the Framebuffer driver for the CLPS7111 and EP7212 processors. @@ -192,7 +178,6 @@ config FB_SA1100 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is a framebuffer device for the SA-1100 LCD Controller. See for information on framebuffer @@ -207,7 +192,6 @@ config FB_IMX select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR config FB_CYBER2000 tristate "CyberPro 2000/2010/5000 support" @@ -215,7 +199,6 @@ config FB_CYBER2000 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This enables support for the Integraphics CyberPro 20x0 and 5000 VGA chips used in the Rebel.com Netwinder and other machines. @@ -228,7 +211,6 @@ config FB_APOLLO default y select FB_CFB_FILLRECT select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR config FB_Q40 bool @@ -237,12 +219,10 @@ config FB_Q40 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR config FB_AMIGA tristate "Amiga native chipset support" depends on FB && AMIGA - select FB_SOFT_CURSOR help This is the frame buffer device driver for the builtin graphics chipset found in Amigas. @@ -282,7 +262,6 @@ config FB_CYBER select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This enables support for the Cybervision 64 graphics card from Phase5. Please note that its use is not all that intuitive (i.e. if @@ -297,7 +276,6 @@ config FB_VIRGE select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This enables support for the Cybervision 64/3D graphics card from Phase5. Please note that its use is not all that intuitive (i.e. if @@ -320,7 +298,6 @@ config FB_FM2 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the Amiga FrameMaster card from BSC (exhibited 1992 but not shipped as a CBM product). @@ -331,7 +308,6 @@ config FB_ARC select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This enables support for the Arc Monochrome LCD board. The board is based on the KS-108 lcd controller and is typically a matrix @@ -354,7 +330,6 @@ config FB_OF select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES help Say Y if you want support with Open Firmware for your graphics @@ -366,7 +341,6 @@ config FB_CONTROL select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES help This driver supports a frame buffer for the graphics adapter in the @@ -378,7 +352,6 @@ config FB_PLATINUM select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES help This driver supports a frame buffer for the "platinum" graphics @@ -390,7 +363,6 @@ config FB_VALKYRIE select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES help This driver supports a frame buffer for the "valkyrie" graphics @@ -402,7 +374,6 @@ config FB_CT65550 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the Chips & Technologies 65550 graphics chip in PowerBooks. @@ -413,13 +384,11 @@ config FB_ASILIANT select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR config FB_IMSTT bool "IMS Twin Turbo display support" depends on (FB = y) && PCI select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES if PPC help The IMS Twin Turbo is a PCI-based frame buffer card bundled with @@ -431,7 +400,6 @@ config FB_VGA16 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for VGA 16 color graphic cards. Say Y if you have such a card. @@ -445,7 +413,6 @@ config FB_STI select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR default y ---help--- STI refers to the HP "Standard Text Interface" which is a set of @@ -466,7 +433,6 @@ config FB_MAC select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES # bool ' Apple DAFB display support' CONFIG_FB_DAFB @@ -475,7 +441,6 @@ config FB_HP300 depends on (FB = y) && HP300 select FB_CFB_FILLRECT select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR default y config FB_TGA @@ -484,7 +449,6 @@ config FB_TGA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for generic TGA graphic cards. Say Y if you have one of those. @@ -495,7 +459,6 @@ config FB_VESA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for generic VESA 2.0 compliant graphic cards. The older VESA 1.2 cards are not supported. @@ -513,7 +476,6 @@ config FB_HGA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Say Y here if you have a Hercules mono graphics card. @@ -542,7 +504,6 @@ config FB_SGIVW select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help SGI Visual Workstation support for framebuffer graphics. @@ -552,7 +513,6 @@ config FB_GBE select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for SGI Graphics Backend. This chip is used in SGI O2 and Visual Workstation 320/540. @@ -580,7 +540,6 @@ config FB_BW2 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the BWtwo frame buffer. @@ -589,7 +548,6 @@ config FB_CG3 depends on (FB = y) && ((SPARC32 || SPARC64) && FB_SBUS || (SUN3 || SUN3X) && FB_SUN3) select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the CGthree frame buffer. @@ -598,7 +556,6 @@ config FB_CG6 depends on (FB = y) && ((SPARC32 || SPARC64) && FB_SBUS || (SUN3 || SUN3X) && FB_SUN3) select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the CGsix (GX, TurboGX) frame buffer. @@ -609,7 +566,6 @@ config FB_PVR2 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR ---help--- Say Y here if you have a PowerVR 2 card in your box. If you plan to run linux on your Dreamcast, you will have to say Y here. @@ -631,7 +587,6 @@ config FB_EPSON1355 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Build in support for the SED1355 Epson Research Embedded RAMDAC LCD/CRT Controller (since redesignated as the S1D13505) as a @@ -676,7 +631,6 @@ config FB_S1D13XXX select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Support for S1D13XXX framebuffer device family (currently only working with S1D13806). Product specs at @@ -691,7 +645,6 @@ config FB_NVIDIA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This driver supports graphics boards with the nVidia chips, TNT and newer. For very old chipsets, such as the RIVA128, then use @@ -809,7 +762,6 @@ config FB_INTEL select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This driver supports the on-board graphics built in to the Intel 830M/845G/852GM/855GM/865G chipsets. @@ -832,7 +784,6 @@ config FB_MATROX select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_TILEBLITTING select FB_MACMODES if PPC_PMAC ---help--- @@ -973,7 +924,6 @@ config FB_RADEON_OLD select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES if PPC help Choose this option if you want to use an ATI Radeon graphics card as @@ -991,7 +941,6 @@ config FB_RADEON select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES if PPC_OF help Choose this option if you want to use an ATI Radeon graphics card as @@ -1029,7 +978,6 @@ config FB_ATY128 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES if PPC_PMAC help This driver supports graphics boards with the ATI Rage128 chips. @@ -1045,7 +993,6 @@ config FB_ATY select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select FB_MACMODES if PPC help This driver supports graphics boards with the ATI Mach64 chips. @@ -1103,7 +1050,6 @@ config FB_SAVAGE select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This driver supports notebooks and computers with S3 Savage PCI/AGP chips. @@ -1140,7 +1086,6 @@ config FB_SIS select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the SiS 300, 315, 330 and 340 series as well as XGI V3XT, V5, V8, Z7 graphics chipsets. @@ -1170,7 +1115,6 @@ config FB_NEOMAGIC select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This driver supports notebooks with NeoMagic PCI chips. Say Y if you have such a graphics card. @@ -1184,7 +1128,6 @@ config FB_KYRO select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Say Y here if you have a STG4000 / Kyro / PowerVR 3 based graphics board. @@ -1198,7 +1141,6 @@ config FB_3DFX select FB_CFB_IMAGEBLIT select FB_CFB_FILLRECT select FB_CFB_COPYAREA - select FB_SOFT_CURSOR help This driver supports graphics boards with the 3Dfx Banshee/Voodoo3 chips. Say Y if you have such a graphics board. @@ -1220,7 +1162,6 @@ config FB_VOODOO1 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR ---help--- Say Y here if you have a 3Dfx Voodoo Graphics (Voodoo1/sst1) or Voodoo2 (cvg) based graphics card. @@ -1237,7 +1178,6 @@ config FB_CYBLA tristate "Cyberblade/i1 support" depends on FB && PCI select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR select VIDEO_SELECT ---help--- This driver is supposed to support the Trident Cyberblade/i1 @@ -1265,7 +1205,6 @@ config FB_TRIDENT select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR ---help--- This driver is supposed to support graphics boards with the Trident CyberXXXX/Image/CyberBlade chips mostly found in laptops @@ -1314,7 +1253,6 @@ config FB_FFB depends on FB_SBUS && SPARC64 select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the Creator, Creator3D, and Elite3D graphics boards. @@ -1325,7 +1263,6 @@ config FB_TCX select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the TCX 24/8bit frame buffer. @@ -1336,7 +1273,6 @@ config FB_CG14 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the CGfourteen frame buffer on Desktop SPARCsystems with the SX graphics option. @@ -1347,7 +1283,6 @@ config FB_P9100 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the P9100 card supported on Sparcbook 3 machines. @@ -1358,7 +1293,6 @@ config FB_LEO select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the SBUS-based Sun ZX (leo) frame buffer cards. @@ -1373,7 +1307,6 @@ config FB_IGA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the framebuffer device for the INTERGRAPHICS 1680 and successor frame buffer cards. @@ -1384,7 +1317,6 @@ config FB_HIT select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help This is the frame buffer device driver for the Hitachi HD64461 LCD frame buffer card. @@ -1395,7 +1327,6 @@ config FB_PMAG_AA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Support for the PMAG-AA TURBOchannel framebuffer card (1280x1024x1) used mainly in the MIPS-based DECstation series. @@ -1406,7 +1337,6 @@ config FB_PMAG_BA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Support for the PMAG-BA TURBOchannel framebuffer card (1024x864x8) used mainly in the MIPS-based DECstation series. @@ -1417,7 +1347,6 @@ config FB_PMAGB_B select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Support for the PMAGB-B TURBOchannel framebuffer card used mainly in the MIPS-based DECstation series. The card is currently only @@ -1429,7 +1358,6 @@ config FB_MAXINE select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Support for the onboard framebuffer (1024x768x8) in the Personal DECstation series (Personal DECstation 5000/20, /25, /33, /50, @@ -1441,7 +1369,6 @@ config FB_TX3912 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help The TX3912 is a Toshiba RISC processor based on the MIPS 3900 core see . @@ -1454,7 +1381,6 @@ config FB_G364 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help The G364 driver is the framebuffer used in MIPS Magnum 4000 and Olivetti M700-10 systems. @@ -1465,7 +1391,6 @@ config FB_68328 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR help Say Y here if you want to support the built-in frame buffer of the Motorola 68328 CPU family. @@ -1476,7 +1401,6 @@ config FB_PXA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR ---help--- Frame buffer driver for the built-in LCD controller in the Intel PXA2x0 processor. @@ -1511,7 +1435,6 @@ config FB_W100 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR ---help--- Frame buffer driver for the w100 as found on the Sharp SL-Cxx series. @@ -1528,7 +1451,6 @@ config FB_S3C2410 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR ---help--- Frame buffer driver for the built-in LCD controller in the Samsung S3C2410 processor. @@ -1552,7 +1474,6 @@ config FB_VIRTUAL select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT - select FB_SOFT_CURSOR ---help--- This is a `virtual' frame buffer device. It operates on a chunk of unswappable kernel memory instead of on the memory of a graphics diff -puN drivers/video/kyro/fbdev.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/kyro/fbdev.c --- devel/drivers/video/kyro/fbdev.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/kyro/fbdev.c 2005-10-18 19:11:59.000000000 -0700 @@ -669,7 +669,6 @@ static struct fb_ops kyrofb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; static int __devinit kyrofb_probe(struct pci_dev *pdev, diff -puN drivers/video/leo.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/leo.c --- devel/drivers/video/leo.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/leo.c 2005-10-18 19:11:59.000000000 -0700 @@ -51,7 +51,6 @@ static struct fb_ops leo_ops = { .fb_imageblit = cfb_imageblit, .fb_mmap = leo_mmap, .fb_ioctl = leo_ioctl, - .fb_cursor = soft_cursor, }; #define LEO_OFF_LC_SS0_KRN 0x00200000UL diff -puN drivers/video/macfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/macfb.c --- devel/drivers/video/macfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/macfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -589,7 +589,6 @@ static struct fb_ops macfb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; void __init macfb_setup(char *options) diff -puN drivers/video/Makefile~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/Makefile --- devel/drivers/video/Makefile~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/Makefile 2005-10-18 19:11:59.000000000 -0700 @@ -16,7 +16,6 @@ fb-objs := $(f obj-$(CONFIG_FB_CFB_FILLRECT) += cfbfillrect.o obj-$(CONFIG_FB_CFB_COPYAREA) += cfbcopyarea.o obj-$(CONFIG_FB_CFB_IMAGEBLIT) += cfbimgblt.o -obj-$(CONFIG_FB_SOFT_CURSOR) += softcursor.o obj-$(CONFIG_FB_MACMODES) += macmodes.o # Hardware specific drivers go first diff -puN drivers/video/matrox/matroxfb_accel.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/matrox/matroxfb_accel.c --- devel/drivers/video/matrox/matroxfb_accel.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/matrox/matroxfb_accel.c 2005-10-18 19:11:59.000000000 -0700 @@ -122,7 +122,7 @@ void matrox_cfbX_init(WPMINFO2) { ACCESS_FBINFO(fbops).fb_copyarea = cfb_copyarea; ACCESS_FBINFO(fbops).fb_fillrect = cfb_fillrect; ACCESS_FBINFO(fbops).fb_imageblit = cfb_imageblit; - ACCESS_FBINFO(fbops).fb_cursor = soft_cursor; + ACCESS_FBINFO(fbops).fb_cursor = NULL; accel = (ACCESS_FBINFO(fbcon).var.accel_flags & FB_ACCELF_TEXT) == FB_ACCELF_TEXT; diff -puN drivers/video/matrox/matroxfb_crtc2.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/matrox/matroxfb_crtc2.c --- devel/drivers/video/matrox/matroxfb_crtc2.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/matrox/matroxfb_crtc2.c 2005-10-18 19:11:59.000000000 -0700 @@ -576,7 +576,6 @@ static struct fb_ops matroxfb_dh_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; static struct fb_var_screeninfo matroxfb_dh_defined = { diff -puN drivers/video/maxinefb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/maxinefb.c --- devel/drivers/video/maxinefb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/maxinefb.c 2005-10-18 19:11:59.000000000 -0700 @@ -113,7 +113,6 @@ static struct fb_ops maxinefb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; int __init maxinefb_init(void) diff -puN drivers/video/neofb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/neofb.c --- devel/drivers/video/neofb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/neofb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1665,7 +1665,6 @@ static struct fb_ops neofb_ops = { .fb_fillrect = neofb_fillrect, .fb_copyarea = neofb_copyarea, .fb_imageblit = neofb_imageblit, - .fb_cursor = soft_cursor, }; /* --------------------------------------------------------------------- */ diff -puN drivers/video/nvidia/nvidia.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/nvidia/nvidia.c --- devel/drivers/video/nvidia/nvidia.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/nvidia/nvidia.c 2005-10-18 19:11:59.000000000 -0700 @@ -1425,7 +1425,7 @@ static int __devinit nvidia_set_fbinfo(s info->pixmap.flags = FB_PIXMAP_SYSTEM; if (!hwcur) - info->fbops->fb_cursor = soft_cursor; + info->fbops->fb_cursor = NULL; info->var.accel_flags = (!noaccel); diff -puN drivers/video/offb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/offb.c --- devel/drivers/video/offb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/offb.c 2005-10-18 19:11:59.000000000 -0700 @@ -85,7 +85,6 @@ static struct fb_ops offb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; /* diff -puN drivers/video/p9100.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/p9100.c --- devel/drivers/video/p9100.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/p9100.c 2005-10-18 19:11:59.000000000 -0700 @@ -48,7 +48,6 @@ static struct fb_ops p9100_ops = { .fb_imageblit = cfb_imageblit, .fb_mmap = p9100_mmap, .fb_ioctl = p9100_ioctl, - .fb_cursor = soft_cursor, }; /* P9100 control registers */ diff -puN drivers/video/platinumfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/platinumfb.c --- devel/drivers/video/platinumfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/platinumfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -109,7 +109,6 @@ static struct fb_ops platinumfb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; /* diff -puN drivers/video/pm2fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/pm2fb.c --- devel/drivers/video/pm2fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/pm2fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1034,7 +1034,6 @@ static struct fb_ops pm2fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; /* diff -puN drivers/video/pmag-ba-fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/pmag-ba-fb.c --- devel/drivers/video/pmag-ba-fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/pmag-ba-fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -128,7 +128,6 @@ static struct fb_ops pmagbafb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; diff -puN drivers/video/pmagb-b-fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/pmagb-b-fb.c --- devel/drivers/video/pmagb-b-fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/pmagb-b-fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -132,7 +132,6 @@ static struct fb_ops pmagbbfb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; diff -puN drivers/video/pvr2fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/pvr2fb.c --- devel/drivers/video/pvr2fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/pvr2fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -230,7 +230,6 @@ static struct fb_ops pvr2fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; static struct fb_videomode pvr2_modedb[] __initdata = { diff -puN drivers/video/pxafb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/pxafb.c --- devel/drivers/video/pxafb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/pxafb.c 2005-10-18 19:11:59.000000000 -0700 @@ -418,7 +418,6 @@ static struct fb_ops pxafb_ops = { .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, .fb_blank = pxafb_blank, - .fb_cursor = soft_cursor, .fb_mmap = pxafb_mmap, }; diff -puN drivers/video/q40fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/q40fb.c --- devel/drivers/video/q40fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/q40fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -83,7 +83,6 @@ static struct fb_ops q40fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; static int __init q40fb_probe(struct device *device) diff -puN drivers/video/radeonfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/radeonfb.c --- devel/drivers/video/radeonfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/radeonfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -2218,7 +2218,6 @@ static struct fb_ops radeonfb_ops = { .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, #endif - .fb_cursor = soft_cursor, }; diff -puN drivers/video/s1d13xxxfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/s1d13xxxfb.c --- devel/drivers/video/s1d13xxxfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/s1d13xxxfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -388,7 +388,6 @@ static struct fb_ops s1d13xxxfb_fbops = .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor }; static int s1d13xxxfb_width_tab[2][4] __devinitdata = { diff -puN drivers/video/s3c2410fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/s3c2410fb.c --- devel/drivers/video/s3c2410fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/s3c2410fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -494,7 +494,6 @@ static struct fb_ops s3c2410fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; diff -puN drivers/video/sa1100fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/sa1100fb.c --- devel/drivers/video/sa1100fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/sa1100fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -853,7 +853,6 @@ static struct fb_ops sa1100fb_ops = { .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, .fb_blank = sa1100fb_blank, - .fb_cursor = soft_cursor, .fb_mmap = sa1100fb_mmap, }; diff -puN drivers/video/savage/savagefb_driver.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/savage/savagefb_driver.c --- devel/drivers/video/savage/savagefb_driver.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/savage/savagefb_driver.c 2005-10-18 19:11:59.000000000 -0700 @@ -1470,7 +1470,6 @@ static struct fb_ops savagefb_ops = { .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, #endif - .fb_cursor = soft_cursor, }; /* --------------------------------------------------------------------- */ diff -puN drivers/video/sgivwfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/sgivwfb.c --- devel/drivers/video/sgivwfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/sgivwfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -124,7 +124,6 @@ static struct fb_ops sgivwfb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, .fb_mmap = sgivwfb_mmap, }; diff -puN drivers/video/sis/sis_main.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/sis/sis_main.c --- devel/drivers/video/sis/sis_main.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/sis/sis_main.c 2005-10-18 19:11:59.000000000 -0700 @@ -2002,7 +2002,9 @@ static struct fb_ops sisfb_ops = { .fb_fillrect = fbcon_sis_fillrect, .fb_copyarea = fbcon_sis_copyarea, .fb_imageblit = cfb_imageblit, +#ifdef CONFIG_FB_SOFT_CURSOR .fb_cursor = soft_cursor, +#endif .fb_sync = fbcon_sis_sync, #ifdef SIS_NEW_CONFIG_COMPAT .fb_compat_ioctl= sisfb_compat_ioctl, diff -puN drivers/video/skeletonfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/skeletonfb.c --- devel/drivers/video/skeletonfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/skeletonfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -457,11 +457,8 @@ void xxxfb_imageblit(struct fb_info *p, } /** - * xxxfb_cursor - REQUIRED function. If your hardware lacks support - * for a cursor you can use the default cursor whose - * function is called soft_cursor. It will always - * work since it uses xxxfb_imageblit function which - * is required. + * xxxfb_cursor - OPTIONAL. If your hardware lacks support + * for a cursor, leave this field NULL. * * @info: frame buffer structure that represents a single frame buffer * @cursor: structure defining the cursor to draw. @@ -663,7 +660,7 @@ static struct fb_ops xxxfb_ops = { .fb_fillrect = xxxfb_fillrect, /* Needed !!! */ .fb_copyarea = xxxfb_copyarea, /* Needed !!! */ .fb_imageblit = xxxfb_imageblit, /* Needed !!! */ - .fb_cursor = xxxfb_cursor, /* Needed !!! */ + .fb_cursor = xxxfb_cursor, /* Optional !!! */ .fb_rotate = xxxfb_rotate, .fb_poll = xxxfb_poll, .fb_sync = xxxfb_sync, diff -puN drivers/video/softcursor.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/softcursor.c --- devel/drivers/video/softcursor.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/softcursor.c 2005-10-18 19:11:59.000000000 -0700 @@ -1,72 +0,0 @@ -/* - * linux/drivers/video/softcursor.c -- Generic software cursor for frame buffer devices - * - * Created 14 Nov 2002 by James Simmons - * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file COPYING in the main directory of this archive - * for more details. - */ - -#include -#include -#include -#include -#include - -#include -#include - -int soft_cursor(struct fb_info *info, struct fb_cursor *cursor) -{ - unsigned int scan_align = info->pixmap.scan_align - 1; - unsigned int buf_align = info->pixmap.buf_align - 1; - unsigned int i, size, dsize, s_pitch, d_pitch; - struct fb_image *image; - u8 *dst, *src; - - if (info->state != FBINFO_STATE_RUNNING) - return 0; - - s_pitch = (cursor->image.width + 7) >> 3; - dsize = s_pitch * cursor->image.height; - - src = kmalloc(dsize + sizeof(struct fb_image), GFP_ATOMIC); - if (!src) - return -ENOMEM; - - image = (struct fb_image *) (src + dsize); - *image = cursor->image; - d_pitch = (s_pitch + scan_align) & ~scan_align; - - size = d_pitch * image->height + buf_align; - size &= ~buf_align; - dst = fb_get_buffer_offset(info, &info->pixmap, size); - - if (cursor->enable) { - switch (cursor->rop) { - case ROP_XOR: - for (i = 0; i < dsize; i++) - src[i] = image->data[i] ^ cursor->mask[i]; - break; - case ROP_COPY: - default: - for (i = 0; i < dsize; i++) - src[i] = image->data[i] & cursor->mask[i]; - break; - } - } else - memcpy(src, image->data, dsize); - - fb_pad_aligned_buffer(dst, d_pitch, src, s_pitch, image->height); - image->data = dst; - info->fbops->fb_imageblit(info, image); - kfree(src); - return 0; -} - -EXPORT_SYMBOL(soft_cursor); - -MODULE_AUTHOR("James Simmons "); -MODULE_DESCRIPTION("Generic software cursor"); -MODULE_LICENSE("GPL"); diff -puN drivers/video/sstfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/sstfb.c --- devel/drivers/video/sstfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/sstfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1382,7 +1382,6 @@ static struct fb_ops sstfb_ops = { .fb_fillrect = cfb_fillrect, /* sstfb_fillrect */ .fb_copyarea = cfb_copyarea, /* sstfb_copyarea */ .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, .fb_ioctl = sstfb_ioctl, }; diff -puN drivers/video/stifb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/stifb.c --- devel/drivers/video/stifb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/stifb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1147,7 +1147,6 @@ static struct fb_ops stifb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; diff -puN drivers/video/tcx.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/tcx.c --- devel/drivers/video/tcx.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/tcx.c 2005-10-18 19:11:59.000000000 -0700 @@ -52,7 +52,6 @@ static struct fb_ops tcx_ops = { .fb_imageblit = cfb_imageblit, .fb_mmap = tcx_mmap, .fb_ioctl = tcx_ioctl, - .fb_cursor = soft_cursor, }; /* THC definitions */ diff -puN drivers/video/tdfxfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/tdfxfb.c --- devel/drivers/video/tdfxfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/tdfxfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -184,7 +184,6 @@ static struct fb_ops tdfxfb_ops = { .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, #endif - .fb_cursor = soft_cursor, }; /* diff -puN drivers/video/tgafb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/tgafb.c --- devel/drivers/video/tgafb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/tgafb.c 2005-10-18 19:11:59.000000000 -0700 @@ -63,7 +63,6 @@ static struct fb_ops tgafb_ops = { .fb_fillrect = tgafb_fillrect, .fb_copyarea = tgafb_copyarea, .fb_imageblit = tgafb_imageblit, - .fb_cursor = soft_cursor, }; diff -puN drivers/video/tridentfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/tridentfb.c --- devel/drivers/video/tridentfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/tridentfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1293,7 +1293,6 @@ static struct fb_ops tridentfb_ops = { .fb_fillrect = tridentfb_fillrect, .fb_copyarea= tridentfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; module_init(tridentfb_init); diff -puN drivers/video/tx3912fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/tx3912fb.c --- devel/drivers/video/tx3912fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/tx3912fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -89,7 +89,6 @@ static struct fb_ops tx3912fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; static int tx3912fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) diff -puN drivers/video/valkyriefb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/valkyriefb.c --- devel/drivers/video/valkyriefb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/valkyriefb.c 2005-10-18 19:11:59.000000000 -0700 @@ -135,7 +135,6 @@ static struct fb_ops valkyriefb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; /* Sets the video mode according to info->var */ diff -puN drivers/video/vesafb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/vesafb.c --- devel/drivers/video/vesafb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/vesafb.c 2005-10-18 19:11:59.000000000 -0700 @@ -213,7 +213,6 @@ static struct fb_ops vesafb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; static int __init vesafb_setup(char *options) diff -puN drivers/video/vfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/vfb.c --- devel/drivers/video/vfb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/vfb.c 2005-10-18 19:11:59.000000000 -0700 @@ -90,7 +90,6 @@ static struct fb_ops vfb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, .fb_mmap = vfb_mmap, }; diff -puN drivers/video/vga16fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/vga16fb.c --- devel/drivers/video/vga16fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/vga16fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -1326,7 +1326,6 @@ static struct fb_ops vga16fb_ops = { .fb_fillrect = vga16fb_fillrect, .fb_copyarea = vga16fb_copyarea, .fb_imageblit = vga16fb_imageblit, - .fb_cursor = soft_cursor, }; #ifndef MODULE diff -puN drivers/video/w100fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon drivers/video/w100fb.c --- devel/drivers/video/w100fb.c~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/drivers/video/w100fb.c 2005-10-18 19:11:59.000000000 -0700 @@ -397,7 +397,6 @@ static struct fb_ops w100fb_ops = { .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_cursor = soft_cursor, }; #ifdef CONFIG_PM diff -puN include/linux/fb.h~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon include/linux/fb.h --- devel/include/linux/fb.h~fbcon-fbdev-move-softcursor-out-of-fbdev-to-fbcon 2005-10-18 19:11:59.000000000 -0700 +++ devel-akpm/include/linux/fb.h 2005-10-18 19:11:59.000000000 -0700 @@ -810,7 +810,6 @@ struct fb_info { extern int fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var); extern int fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var); extern int fb_blank(struct fb_info *info, int blank); -extern int soft_cursor(struct fb_info *info, struct fb_cursor *cursor); extern void cfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect); extern void cfb_copyarea(struct fb_info *info, const struct fb_copyarea *area); extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image); _