Browse Source

[PATCH] fbcon/fbdev: Move softcursor out of fbdev to fbcon

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 <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Antonino A. Daplas 20 years ago
parent
commit
c465e05a03
75 changed files with 20 additions and 162 deletions
  1. 0 1
      drivers/video/68328fb.c
  2. 0 79
      drivers/video/Kconfig
  3. 0 1
      drivers/video/Makefile
  4. 0 1
      drivers/video/acornfb.c
  5. 0 1
      drivers/video/amba-clcd.c
  6. 0 1
      drivers/video/amifb.c
  7. 0 1
      drivers/video/arcfb.c
  8. 0 1
      drivers/video/asiliantfb.c
  9. 0 1
      drivers/video/aty/aty128fb.c
  10. 0 1
      drivers/video/aty/atyfb_base.c
  11. 0 1
      drivers/video/aty/radeon_base.c
  12. 0 1
      drivers/video/bw2.c
  13. 0 1
      drivers/video/cg14.c
  14. 0 1
      drivers/video/cg3.c
  15. 0 1
      drivers/video/cg6.c
  16. 0 1
      drivers/video/chipsfb.c
  17. 0 1
      drivers/video/cirrusfb.c
  18. 0 1
      drivers/video/clps711xfb.c
  19. 1 1
      drivers/video/console/Makefile
  20. 6 1
      drivers/video/console/bitblit.c
  21. 1 1
      drivers/video/console/fbcon.h
  22. 4 4
      drivers/video/console/softcursor.c
  23. 0 1
      drivers/video/controlfb.c
  24. 0 1
      drivers/video/cyber2000fb.c
  25. 0 1
      drivers/video/cyblafb.c
  26. 0 1
      drivers/video/dnfb.c
  27. 0 1
      drivers/video/epson1355fb.c
  28. 0 3
      drivers/video/ffb.c
  29. 0 1
      drivers/video/fm2fb.c
  30. 0 1
      drivers/video/gbefb.c
  31. 0 1
      drivers/video/geode/Kconfig
  32. 0 1
      drivers/video/geode/gx1fb_core.c
  33. 0 1
      drivers/video/hitfb.c
  34. 0 1
      drivers/video/hpfb.c
  35. 0 1
      drivers/video/imsttfb.c
  36. 0 1
      drivers/video/imxfb.c
  37. 1 1
      drivers/video/intelfb/intelfbdrv.c
  38. 0 1
      drivers/video/kyro/fbdev.c
  39. 0 1
      drivers/video/leo.c
  40. 0 1
      drivers/video/macfb.c
  41. 1 1
      drivers/video/matrox/matroxfb_accel.c
  42. 0 1
      drivers/video/matrox/matroxfb_crtc2.c
  43. 0 1
      drivers/video/maxinefb.c
  44. 0 1
      drivers/video/neofb.c
  45. 1 1
      drivers/video/nvidia/nvidia.c
  46. 0 1
      drivers/video/offb.c
  47. 0 1
      drivers/video/p9100.c
  48. 0 1
      drivers/video/platinumfb.c
  49. 0 1
      drivers/video/pm2fb.c
  50. 0 1
      drivers/video/pmag-ba-fb.c
  51. 0 1
      drivers/video/pmagb-b-fb.c
  52. 0 1
      drivers/video/pvr2fb.c
  53. 0 1
      drivers/video/pxafb.c
  54. 0 1
      drivers/video/q40fb.c
  55. 0 1
      drivers/video/radeonfb.c
  56. 0 1
      drivers/video/s1d13xxxfb.c
  57. 0 1
      drivers/video/s3c2410fb.c
  58. 0 1
      drivers/video/sa1100fb.c
  59. 0 1
      drivers/video/savage/savagefb_driver.c
  60. 0 1
      drivers/video/sgivwfb.c
  61. 2 0
      drivers/video/sis/sis_main.c
  62. 3 6
      drivers/video/skeletonfb.c
  63. 0 1
      drivers/video/sstfb.c
  64. 0 1
      drivers/video/stifb.c
  65. 0 1
      drivers/video/tcx.c
  66. 0 1
      drivers/video/tdfxfb.c
  67. 0 1
      drivers/video/tgafb.c
  68. 0 1
      drivers/video/tridentfb.c
  69. 0 1
      drivers/video/tx3912fb.c
  70. 0 1
      drivers/video/valkyriefb.c
  71. 0 1
      drivers/video/vesafb.c
  72. 0 1
      drivers/video/vfb.c
  73. 0 1
      drivers/video/vga16fb.c
  74. 0 1
      drivers/video/w100fb.c
  75. 0 1
      include/linux/fb.h

+ 0 - 1
drivers/video/68328fb.c

@@ -113,7 +113,6 @@ static struct fb_ops mc68x328fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_mmap	= mc68x328fb_mmap,
 	.fb_mmap	= mc68x328fb_mmap,
 };
 };
 
 

+ 0 - 79
drivers/video/Kconfig

@@ -65,15 +65,6 @@ config FB_CFB_IMAGEBLIT
 	  blitting. This is used by drivers that don't provide their own
 	  blitting. This is used by drivers that don't provide their own
 	  (accelerated) version.
 	  (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
 config FB_MACMODES
        tristate
        tristate
        depends on FB
        depends on FB
@@ -114,7 +105,6 @@ config FB_CIRRUS
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	---help---
 	---help---
 	  This enables support for Cirrus Logic GD542x/543x based boards on
 	  This enables support for Cirrus Logic GD542x/543x based boards on
 	  Amiga: SD64, Piccolo, Picasso II/II+, Picasso IV, or EGS Spectrum.
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the Permedia2 AGP frame
 	  This is the frame buffer device driver for the Permedia2 AGP frame
 	  buffer card from ASK, aka `Graphic Blaster Exxtreme'.  There is a
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This framebuffer device driver is for the ARM PrimeCell PL110
 	  This framebuffer device driver is for the ARM PrimeCell PL110
 	  Colour LCD controller.  ARM PrimeCells provide the building
 	  Colour LCD controller.  ARM PrimeCells provide the building
@@ -169,7 +157,6 @@ config FB_ACORN
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the Acorn VIDC graphics
 	  This is the frame buffer device driver for the Acorn VIDC graphics
 	  hardware found in Acorn RISC PCs and other ARM-based machines.  If
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Say Y to enable the Framebuffer driver for the CLPS7111 and
 	  Say Y to enable the Framebuffer driver for the CLPS7111 and
 	  EP7212 processors.
 	  EP7212 processors.
@@ -192,7 +178,6 @@ config FB_SA1100
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is a framebuffer device for the SA-1100 LCD Controller.
 	  This is a framebuffer device for the SA-1100 LCD Controller.
 	  See <http://www.linux-fbdev.org/> for information on framebuffer
 	  See <http://www.linux-fbdev.org/> for information on framebuffer
@@ -207,7 +192,6 @@ config FB_IMX
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 
 
 config FB_CYBER2000
 config FB_CYBER2000
 	tristate "CyberPro 2000/2010/5000 support"
 	tristate "CyberPro 2000/2010/5000 support"
@@ -215,7 +199,6 @@ config FB_CYBER2000
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This enables support for the Integraphics CyberPro 20x0 and 5000
 	  This enables support for the Integraphics CyberPro 20x0 and 5000
 	  VGA chips used in the Rebel.com Netwinder and other machines.
 	  VGA chips used in the Rebel.com Netwinder and other machines.
@@ -228,7 +211,6 @@ config FB_APOLLO
 	default y
 	default y
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 
 
 config FB_Q40
 config FB_Q40
 	bool
 	bool
@@ -237,12 +219,10 @@ config FB_Q40
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 
 
 config FB_AMIGA
 config FB_AMIGA
 	tristate "Amiga native chipset support"
 	tristate "Amiga native chipset support"
 	depends on FB && AMIGA
 	depends on FB && AMIGA
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the builtin graphics
 	  This is the frame buffer device driver for the builtin graphics
 	  chipset found in Amigas.
 	  chipset found in Amigas.
@@ -282,7 +262,6 @@ config FB_CYBER
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This enables support for the Cybervision 64 graphics card from
 	  This enables support for the Cybervision 64 graphics card from
 	  Phase5. Please note that its use is not all that intuitive (i.e. if
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This enables support for the Cybervision 64/3D graphics card from
 	  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
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the Amiga FrameMaster
 	  This is the frame buffer device driver for the Amiga FrameMaster
 	  card from BSC (exhibited 1992 but not shipped as a CBM product).
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This enables support for the Arc Monochrome LCD board. The board
 	  This enables support for the Arc Monochrome LCD board. The board
 	  is based on the KS-108 lcd controller and is typically a matrix
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES
 	select FB_MACMODES
 	help
 	help
 	  Say Y if you want support with Open Firmware for your graphics
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES
 	select FB_MACMODES
 	help
 	help
 	  This driver supports a frame buffer for the graphics adapter in the
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES
 	select FB_MACMODES
 	help
 	help
 	  This driver supports a frame buffer for the "platinum" graphics
 	  This driver supports a frame buffer for the "platinum" graphics
@@ -390,7 +363,6 @@ config FB_VALKYRIE
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES
 	select FB_MACMODES
 	help
 	help
 	  This driver supports a frame buffer for the "valkyrie" graphics
 	  This driver supports a frame buffer for the "valkyrie" graphics
@@ -402,7 +374,6 @@ config FB_CT65550
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the Chips & Technologies
 	  This is the frame buffer device driver for the Chips & Technologies
 	  65550 graphics chip in PowerBooks.
 	  65550 graphics chip in PowerBooks.
@@ -413,13 +384,11 @@ config FB_ASILIANT
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 
 
 config FB_IMSTT
 config FB_IMSTT
 	bool "IMS Twin Turbo display support"
 	bool "IMS Twin Turbo display support"
 	depends on (FB = y) && PCI
 	depends on (FB = y) && PCI
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES if PPC
 	select FB_MACMODES if PPC
 	help
 	help
 	  The IMS Twin Turbo is a PCI-based frame buffer card bundled with
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for VGA 16 color graphic
 	  This is the frame buffer device driver for VGA 16 color graphic
 	  cards. Say Y if you have such a card.
 	  cards. Say Y if you have such a card.
@@ -445,7 +413,6 @@ config FB_STI
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	default y
 	default y
 	---help---
 	---help---
 	  STI refers to the HP "Standard Text Interface" which is a set of
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES
 	select FB_MACMODES
 
 
 #      bool '  Apple DAFB display support' CONFIG_FB_DAFB
 #      bool '  Apple DAFB display support' CONFIG_FB_DAFB
@@ -475,7 +441,6 @@ config FB_HP300
 	depends on (FB = y) && HP300
 	depends on (FB = y) && HP300
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	default y
 	default y
 
 
 config FB_TGA
 config FB_TGA
@@ -484,7 +449,6 @@ config FB_TGA
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for generic TGA graphic
 	  This is the frame buffer device driver for generic TGA graphic
 	  cards. Say Y if you have one of those.
 	  cards. Say Y if you have one of those.
@@ -495,7 +459,6 @@ config FB_VESA
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for generic VESA 2.0
 	  This is the frame buffer device driver for generic VESA 2.0
 	  compliant graphic cards. The older VESA 1.2 cards are not supported.
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Say Y here if you have a Hercules mono graphics card.
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  SGI Visual Workstation support for framebuffer graphics.
 	  SGI Visual Workstation support for framebuffer graphics.
 
 
@@ -552,7 +513,6 @@ config FB_GBE
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
  	help
  	help
 	  This is the frame buffer device driver for SGI Graphics Backend.
 	  This is the frame buffer device driver for SGI Graphics Backend.
 	  This chip is used in SGI O2 and Visual Workstation 320/540.
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the BWtwo frame buffer.
 	  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)
 	depends on (FB = y) && ((SPARC32 || SPARC64) && FB_SBUS || (SUN3 || SUN3X) && FB_SUN3)
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the CGthree frame buffer.
 	  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)
 	depends on (FB = y) && ((SPARC32 || SPARC64) && FB_SBUS || (SUN3 || SUN3X) && FB_SUN3)
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the CGsix (GX, TurboGX)
 	  This is the frame buffer device driver for the CGsix (GX, TurboGX)
 	  frame buffer.
 	  frame buffer.
@@ -609,7 +566,6 @@ config FB_PVR2
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	---help---
 	---help---
 	  Say Y here if you have a PowerVR 2 card in your box.  If you plan to
 	  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.
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Build in support for the SED1355 Epson Research Embedded RAMDAC
 	  Build in support for the SED1355 Epson Research Embedded RAMDAC
 	  LCD/CRT Controller (since redesignated as the S1D13505) as a
 	  LCD/CRT Controller (since redesignated as the S1D13505) as a
@@ -676,7 +631,6 @@ config FB_S1D13XXX
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Support for S1D13XXX framebuffer device family (currently only
 	  Support for S1D13XXX framebuffer device family (currently only
 	  working with S1D13806). Product specs at
 	  working with S1D13806). Product specs at
@@ -691,7 +645,6 @@ config FB_NVIDIA
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This driver supports graphics boards with the nVidia chips, TNT
 	  This driver supports graphics boards with the nVidia chips, TNT
 	  and newer. For very old chipsets, such as the RIVA128, then use
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This driver supports the on-board graphics built in to the Intel
 	  This driver supports the on-board graphics built in to the Intel
           830M/845G/852GM/855GM/865G chipsets.
           830M/845G/852GM/855GM/865G chipsets.
@@ -832,7 +784,6 @@ config FB_MATROX
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_TILEBLITTING
 	select FB_TILEBLITTING
 	select FB_MACMODES if PPC_PMAC
 	select FB_MACMODES if PPC_PMAC
 	---help---
 	---help---
@@ -973,7 +924,6 @@ config FB_RADEON_OLD
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES if PPC
 	select FB_MACMODES if PPC
 	help
 	help
 	  Choose this option if you want to use an ATI Radeon graphics card as
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES if PPC_OF
 	select FB_MACMODES if PPC_OF
 	help
 	help
 	  Choose this option if you want to use an ATI Radeon graphics card as
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES if PPC_PMAC
 	select FB_MACMODES if PPC_PMAC
 	help
 	help
 	  This driver supports graphics boards with the ATI Rage128 chips.
 	  This driver supports graphics boards with the ATI Rage128 chips.
@@ -1045,7 +993,6 @@ config FB_ATY
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select FB_MACMODES if PPC
 	select FB_MACMODES if PPC
 	help
 	help
 	  This driver supports graphics boards with the ATI Mach64 chips.
 	  This driver supports graphics boards with the ATI Mach64 chips.
@@ -1103,7 +1050,6 @@ config FB_SAVAGE
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This driver supports notebooks and computers with S3 Savage PCI/AGP
 	  This driver supports notebooks and computers with S3 Savage PCI/AGP
 	  chips.
 	  chips.
@@ -1140,7 +1086,6 @@ config FB_SIS
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the SiS 300, 315, 330
 	  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.
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This driver supports notebooks with NeoMagic PCI chips.
 	  This driver supports notebooks with NeoMagic PCI chips.
 	  Say Y if you have such a graphics card. 
 	  Say Y if you have such a graphics card. 
@@ -1184,7 +1128,6 @@ config FB_KYRO
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Say Y here if you have a STG4000 / Kyro / PowerVR 3 based
 	  Say Y here if you have a STG4000 / Kyro / PowerVR 3 based
 	  graphics board.
 	  graphics board.
@@ -1198,7 +1141,6 @@ config FB_3DFX
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This driver supports graphics boards with the 3Dfx Banshee/Voodoo3
 	  This driver supports graphics boards with the 3Dfx Banshee/Voodoo3
 	  chips. Say Y if you have such a graphics board.
 	  chips. Say Y if you have such a graphics board.
@@ -1220,7 +1162,6 @@ config FB_VOODOO1
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	---help---
 	---help---
 	  Say Y here if you have a 3Dfx Voodoo Graphics (Voodoo1/sst1) or 
 	  Say Y here if you have a 3Dfx Voodoo Graphics (Voodoo1/sst1) or 
 	  Voodoo2 (cvg) based graphics card.
 	  Voodoo2 (cvg) based graphics card.
@@ -1237,7 +1178,6 @@ config FB_CYBLA
 	tristate "Cyberblade/i1 support"
 	tristate "Cyberblade/i1 support"
 	depends on FB && PCI
 	depends on FB && PCI
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	select VIDEO_SELECT
 	select VIDEO_SELECT
 	---help---
 	---help---
 	  This driver is supposed to support the Trident Cyberblade/i1
 	  This driver is supposed to support the Trident Cyberblade/i1
@@ -1265,7 +1205,6 @@ config FB_TRIDENT
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	---help---
 	---help---
 	  This driver is supposed to support graphics boards with the
 	  This driver is supposed to support graphics boards with the
 	  Trident CyberXXXX/Image/CyberBlade chips mostly found in laptops
 	  Trident CyberXXXX/Image/CyberBlade chips mostly found in laptops
@@ -1314,7 +1253,6 @@ config FB_FFB
 	depends on FB_SBUS && SPARC64
 	depends on FB_SBUS && SPARC64
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the Creator, Creator3D,
 	  This is the frame buffer device driver for the Creator, Creator3D,
 	  and Elite3D graphics boards.
 	  and Elite3D graphics boards.
@@ -1325,7 +1263,6 @@ config FB_TCX
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the TCX 24/8bit frame
 	  This is the frame buffer device driver for the TCX 24/8bit frame
 	  buffer.
 	  buffer.
@@ -1336,7 +1273,6 @@ config FB_CG14
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the CGfourteen frame
 	  This is the frame buffer device driver for the CGfourteen frame
 	  buffer on Desktop SPARCsystems with the SX graphics option.
 	  buffer on Desktop SPARCsystems with the SX graphics option.
@@ -1347,7 +1283,6 @@ config FB_P9100
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the P9100 card
 	  This is the frame buffer device driver for the P9100 card
 	  supported on Sparcbook 3 machines.
 	  supported on Sparcbook 3 machines.
@@ -1358,7 +1293,6 @@ config FB_LEO
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the SBUS-based Sun ZX
 	  This is the frame buffer device driver for the SBUS-based Sun ZX
 	  (leo) frame buffer cards.
 	  (leo) frame buffer cards.
@@ -1373,7 +1307,6 @@ config FB_IGA
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the framebuffer device for the INTERGRAPHICS 1680 and
 	  This is the framebuffer device for the INTERGRAPHICS 1680 and
 	  successor frame buffer cards.
 	  successor frame buffer cards.
@@ -1384,7 +1317,6 @@ config FB_HIT
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  This is the frame buffer device driver for the Hitachi HD64461 LCD
 	  This is the frame buffer device driver for the Hitachi HD64461 LCD
 	  frame buffer card.
 	  frame buffer card.
@@ -1395,7 +1327,6 @@ config FB_PMAG_AA
  	select FB_CFB_FILLRECT
  	select FB_CFB_FILLRECT
  	select FB_CFB_COPYAREA
  	select FB_CFB_COPYAREA
  	select FB_CFB_IMAGEBLIT
  	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Support for the PMAG-AA TURBOchannel framebuffer card (1280x1024x1)
 	  Support for the PMAG-AA TURBOchannel framebuffer card (1280x1024x1)
 	  used mainly in the MIPS-based DECstation series.
 	  used mainly in the MIPS-based DECstation series.
@@ -1406,7 +1337,6 @@ config FB_PMAG_BA
  	select FB_CFB_FILLRECT
  	select FB_CFB_FILLRECT
  	select FB_CFB_COPYAREA
  	select FB_CFB_COPYAREA
  	select FB_CFB_IMAGEBLIT
  	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Support for the PMAG-BA TURBOchannel framebuffer card (1024x864x8)
 	  Support for the PMAG-BA TURBOchannel framebuffer card (1024x864x8)
 	  used mainly in the MIPS-based DECstation series.
 	  used mainly in the MIPS-based DECstation series.
@@ -1417,7 +1347,6 @@ config FB_PMAGB_B
  	select FB_CFB_FILLRECT
  	select FB_CFB_FILLRECT
  	select FB_CFB_COPYAREA
  	select FB_CFB_COPYAREA
  	select FB_CFB_IMAGEBLIT
  	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Support for the PMAGB-B TURBOchannel framebuffer card used mainly
 	  Support for the PMAGB-B TURBOchannel framebuffer card used mainly
 	  in the MIPS-based DECstation series. The card is currently only
 	  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_FILLRECT
  	select FB_CFB_COPYAREA
  	select FB_CFB_COPYAREA
  	select FB_CFB_IMAGEBLIT
  	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Support for the onboard framebuffer (1024x768x8) in the Personal
 	  Support for the onboard framebuffer (1024x768x8) in the Personal
 	  DECstation series (Personal DECstation 5000/20, /25, /33, /50,
 	  DECstation series (Personal DECstation 5000/20, /25, /33, /50,
@@ -1441,7 +1369,6 @@ config FB_TX3912
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  The TX3912 is a Toshiba RISC processor based on the MIPS 3900 core
 	  The TX3912 is a Toshiba RISC processor based on the MIPS 3900 core
 	  see <http://www.toshiba.com/taec/components/Generic/risc/tx3912.htm>.
 	  see <http://www.toshiba.com/taec/components/Generic/risc/tx3912.htm>.
@@ -1454,7 +1381,6 @@ config FB_G364
  	select FB_CFB_FILLRECT
  	select FB_CFB_FILLRECT
  	select FB_CFB_COPYAREA
  	select FB_CFB_COPYAREA
  	select FB_CFB_IMAGEBLIT
  	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  The G364 driver is the framebuffer used in MIPS Magnum 4000 and
 	  The G364 driver is the framebuffer used in MIPS Magnum 4000 and
 	  Olivetti M700-10 systems.
 	  Olivetti M700-10 systems.
@@ -1465,7 +1391,6 @@ config FB_68328
  	select FB_CFB_FILLRECT
  	select FB_CFB_FILLRECT
  	select FB_CFB_COPYAREA
  	select FB_CFB_COPYAREA
  	select FB_CFB_IMAGEBLIT
  	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	help
 	help
 	  Say Y here if you want to support the built-in frame buffer of
 	  Say Y here if you want to support the built-in frame buffer of
 	  the Motorola 68328 CPU family.
 	  the Motorola 68328 CPU family.
@@ -1476,7 +1401,6 @@ config FB_PXA
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	---help---
 	---help---
 	  Frame buffer driver for the built-in LCD controller in the Intel
 	  Frame buffer driver for the built-in LCD controller in the Intel
 	  PXA2x0 processor.
 	  PXA2x0 processor.
@@ -1511,7 +1435,6 @@ config FB_W100
  	select FB_CFB_FILLRECT
  	select FB_CFB_FILLRECT
  	select FB_CFB_COPYAREA
  	select FB_CFB_COPYAREA
  	select FB_CFB_IMAGEBLIT
  	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	---help---
 	---help---
 	  Frame buffer driver for the w100 as found on the Sharp SL-Cxx series.
 	  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_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	---help---
 	---help---
 	  Frame buffer driver for the built-in LCD controller in the Samsung
 	  Frame buffer driver for the built-in LCD controller in the Samsung
 	  S3C2410 processor.
 	  S3C2410 processor.
@@ -1552,7 +1474,6 @@ config FB_VIRTUAL
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	---help---
 	---help---
 	  This is a `virtual' frame buffer device. It operates on a chunk of
 	  This is a `virtual' frame buffer device. It operates on a chunk of
 	  unswappable kernel memory instead of on the memory of a graphics
 	  unswappable kernel memory instead of on the memory of a graphics

+ 0 - 1
drivers/video/Makefile

@@ -16,7 +16,6 @@ fb-objs                           := $(fb-y)
 obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
 obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
 obj-$(CONFIG_FB_CFB_COPYAREA)  += cfbcopyarea.o
 obj-$(CONFIG_FB_CFB_COPYAREA)  += cfbcopyarea.o
 obj-$(CONFIG_FB_CFB_IMAGEBLIT) += cfbimgblt.o
 obj-$(CONFIG_FB_CFB_IMAGEBLIT) += cfbimgblt.o
-obj-$(CONFIG_FB_SOFT_CURSOR)   += softcursor.o
 obj-$(CONFIG_FB_MACMODES)      += macmodes.o
 obj-$(CONFIG_FB_MACMODES)      += macmodes.o
 
 
 # Hardware specific drivers go first
 # Hardware specific drivers go first

+ 0 - 1
drivers/video/acornfb.c

@@ -926,7 +926,6 @@ static struct fb_ops acornfb_ops = {
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_mmap	= acornfb_mmap,
 	.fb_mmap	= acornfb_mmap,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 /*
 /*

+ 0 - 1
drivers/video/amba-clcd.c

@@ -333,7 +333,6 @@ static struct fb_ops clcdfb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_mmap	= clcdfb_mmap,
 	.fb_mmap	= clcdfb_mmap,
 };
 };
 
 

+ 0 - 1
drivers/video/amifb.c

@@ -1185,7 +1185,6 @@ static struct fb_ops amifb_ops = {
 	.fb_fillrect	= amifb_fillrect,
 	.fb_fillrect	= amifb_fillrect,
 	.fb_copyarea	= amifb_copyarea,
 	.fb_copyarea	= amifb_copyarea,
 	.fb_imageblit	= amifb_imageblit,
 	.fb_imageblit	= amifb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_ioctl	= amifb_ioctl,
 	.fb_ioctl	= amifb_ioctl,
 };
 };
 
 

+ 0 - 1
drivers/video/arcfb.c

@@ -511,7 +511,6 @@ static struct fb_ops arcfb_ops = {
 	.fb_fillrect	= arcfb_fillrect,
 	.fb_fillrect	= arcfb_fillrect,
 	.fb_copyarea	= arcfb_copyarea,
 	.fb_copyarea	= arcfb_copyarea,
 	.fb_imageblit	= arcfb_imageblit,
 	.fb_imageblit	= arcfb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_ioctl 	= arcfb_ioctl,
 	.fb_ioctl 	= arcfb_ioctl,
 };
 };
 
 

+ 0 - 1
drivers/video/asiliantfb.c

@@ -106,7 +106,6 @@ static struct fb_ops asiliantfb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 /* Calculate the ratios for the dot clocks without using a single long long
 /* Calculate the ratios for the dot clocks without using a single long long

+ 0 - 1
drivers/video/aty/aty128fb.c

@@ -478,7 +478,6 @@ static struct fb_ops aty128fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 #ifdef CONFIG_PMAC_BACKLIGHT
 #ifdef CONFIG_PMAC_BACKLIGHT

+ 0 - 1
drivers/video/aty/atyfb_base.c

@@ -292,7 +292,6 @@ static struct fb_ops atyfb_ops = {
 	.fb_fillrect	= atyfb_fillrect,
 	.fb_fillrect	= atyfb_fillrect,
 	.fb_copyarea	= atyfb_copyarea,
 	.fb_copyarea	= atyfb_copyarea,
 	.fb_imageblit	= atyfb_imageblit,
 	.fb_imageblit	= atyfb_imageblit,
-	.fb_cursor	= soft_cursor,
 #ifdef __sparc__
 #ifdef __sparc__
 	.fb_mmap	= atyfb_mmap,
 	.fb_mmap	= atyfb_mmap,
 #endif
 #endif

+ 0 - 1
drivers/video/aty/radeon_base.c

@@ -1873,7 +1873,6 @@ static struct fb_ops radeonfb_ops = {
 	.fb_fillrect		= radeonfb_fillrect,
 	.fb_fillrect		= radeonfb_fillrect,
 	.fb_copyarea		= radeonfb_copyarea,
 	.fb_copyarea		= radeonfb_copyarea,
 	.fb_imageblit		= radeonfb_imageblit,
 	.fb_imageblit		= radeonfb_imageblit,
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 
 

+ 0 - 1
drivers/video/bw2.c

@@ -51,7 +51,6 @@ static struct fb_ops bw2_ops = {
 	.fb_imageblit		= cfb_imageblit,
 	.fb_imageblit		= cfb_imageblit,
 	.fb_mmap		= bw2_mmap,
 	.fb_mmap		= bw2_mmap,
 	.fb_ioctl		= bw2_ioctl,
 	.fb_ioctl		= bw2_ioctl,
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 /* OBio addresses for the bwtwo registers */
 /* OBio addresses for the bwtwo registers */

+ 0 - 1
drivers/video/cg14.c

@@ -49,7 +49,6 @@ static struct fb_ops cg14_ops = {
 	.fb_imageblit		= cfb_imageblit,
 	.fb_imageblit		= cfb_imageblit,
 	.fb_mmap		= cg14_mmap,
 	.fb_mmap		= cg14_mmap,
 	.fb_ioctl		= cg14_ioctl,
 	.fb_ioctl		= cg14_ioctl,
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 #define CG14_MCR_INTENABLE_SHIFT	7
 #define CG14_MCR_INTENABLE_SHIFT	7

+ 0 - 1
drivers/video/cg3.c

@@ -50,7 +50,6 @@ static struct fb_ops cg3_ops = {
 	.fb_imageblit		= cfb_imageblit,
 	.fb_imageblit		= cfb_imageblit,
 	.fb_mmap		= cg3_mmap,
 	.fb_mmap		= cg3_mmap,
 	.fb_ioctl		= cg3_ioctl,
 	.fb_ioctl		= cg3_ioctl,
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 
 

+ 0 - 1
drivers/video/cg6.c

@@ -54,7 +54,6 @@ static struct fb_ops cg6_ops = {
 	.fb_sync		= cg6_sync,
 	.fb_sync		= cg6_sync,
 	.fb_mmap		= cg6_mmap,
 	.fb_mmap		= cg6_mmap,
 	.fb_ioctl		= cg6_ioctl,
 	.fb_ioctl		= cg6_ioctl,
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 /* Offset of interesting structures in the OBIO space */
 /* Offset of interesting structures in the OBIO space */

+ 0 - 1
drivers/video/chipsfb.c

@@ -91,7 +91,6 @@ static struct fb_ops chipsfb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 static int chipsfb_check_var(struct fb_var_screeninfo *var,
 static int chipsfb_check_var(struct fb_var_screeninfo *var,

+ 0 - 1
drivers/video/cirrusfb.c

@@ -548,7 +548,6 @@ static struct fb_ops cirrusfb_ops = {
 	.fb_fillrect	= cirrusfb_fillrect,
 	.fb_fillrect	= cirrusfb_fillrect,
 	.fb_copyarea	= cirrusfb_copyarea,
 	.fb_copyarea	= cirrusfb_copyarea,
 	.fb_imageblit	= cirrusfb_imageblit,
 	.fb_imageblit	= cirrusfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 /*--- Hardware Specific Routines -------------------------------------------*/
 /*--- Hardware Specific Routines -------------------------------------------*/

+ 0 - 1
drivers/video/clps711xfb.c

@@ -219,7 +219,6 @@ static struct fb_ops clps7111fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 static int 
 static int 

+ 1 - 1
drivers/video/console/Makefile

@@ -26,7 +26,7 @@ obj-$(CONFIG_PROM_CONSOLE)        += promcon.o promcon_tbl.o
 obj-$(CONFIG_STI_CONSOLE)         += sticon.o sticore.o font.o
 obj-$(CONFIG_STI_CONSOLE)         += sticon.o sticore.o font.o
 obj-$(CONFIG_VGA_CONSOLE)         += vgacon.o
 obj-$(CONFIG_VGA_CONSOLE)         += vgacon.o
 obj-$(CONFIG_MDA_CONSOLE)         += mdacon.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)
 ifeq ($(CONFIG_FB_TILEBLITTING),y)
 obj-$(CONFIG_FRAMEBUFFER_CONSOLE)     += tileblit.o
 obj-$(CONFIG_FRAMEBUFFER_CONSOLE)     += tileblit.o
 endif
 endif

+ 6 - 1
drivers/video/console/bitblit.c

@@ -272,6 +272,7 @@ static void bit_cursor(struct vc_data *vc, struct fb_info *info,
 	int w = (vc->vc_font.width + 7) >> 3, c;
 	int w = (vc->vc_font.width + 7) >> 3, c;
 	int y = real_y(p, vc->vc_y);
 	int y = real_y(p, vc->vc_y);
 	int attribute, use_sw = (vc->vc_cursor_type & 0x10);
 	int attribute, use_sw = (vc->vc_cursor_type & 0x10);
+	int err = 1;
 	char *src;
 	char *src;
 
 
 	cursor.set = 0;
 	cursor.set = 0;
@@ -408,7 +409,11 @@ static void bit_cursor(struct vc_data *vc, struct fb_info *info,
 	cursor.image.depth = 1;
 	cursor.image.depth = 1;
 	cursor.rop = ROP_XOR;
 	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;
 	ops->cursor_reset = 0;
 }
 }

+ 1 - 1
drivers/video/console/fbcon.h

@@ -167,5 +167,5 @@ extern void fbcon_set_tileops(struct vc_data *vc, struct fb_info *info,
 			      struct display *p, struct fbcon_ops *ops);
 			      struct display *p, struct fbcon_ops *ops);
 #endif
 #endif
 extern void fbcon_set_bitops(struct fbcon_ops *ops);
 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 */
 #endif /* _VIDEO_FBCON_H */

+ 4 - 4
drivers/video/softcursor.c → drivers/video/console/softcursor.c

@@ -1,7 +1,7 @@
 /*
 /*
  * linux/drivers/video/softcursor.c -- Generic software cursor for frame buffer devices
  * linux/drivers/video/softcursor.c -- Generic software cursor for frame buffer devices
  *
  *
- *  Created 14 Nov 2002 by James Simmons 
+ *  Created 14 Nov 2002 by James Simmons
  *
  *
  * This file is subject to the terms and conditions of the GNU General Public
  * 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
  * License.  See the file COPYING in the main directory of this archive
@@ -55,9 +55,9 @@ int soft_cursor(struct fb_info *info, struct fb_cursor *cursor)
 				src[i] = image->data[i] & cursor->mask[i];
 				src[i] = image->data[i] & cursor->mask[i];
 			break;
 			break;
 		}
 		}
-	} else 
+	} else
 		memcpy(src, image->data, dsize);
 		memcpy(src, image->data, dsize);
-	
+
 	fb_pad_aligned_buffer(dst, d_pitch, src, s_pitch, image->height);
 	fb_pad_aligned_buffer(dst, d_pitch, src, s_pitch, image->height);
 	image->data = dst;
 	image->data = dst;
 	info->fbops->fb_imageblit(info, image);
 	info->fbops->fb_imageblit(info, image);
@@ -66,7 +66,7 @@ int soft_cursor(struct fb_info *info, struct fb_cursor *cursor)
 }
 }
 
 
 EXPORT_SYMBOL(soft_cursor);
 EXPORT_SYMBOL(soft_cursor);
- 
+
 MODULE_AUTHOR("James Simmons <jsimmons@users.sf.net>");
 MODULE_AUTHOR("James Simmons <jsimmons@users.sf.net>");
 MODULE_DESCRIPTION("Generic software cursor");
 MODULE_DESCRIPTION("Generic software cursor");
 MODULE_LICENSE("GPL");
 MODULE_LICENSE("GPL");

+ 0 - 1
drivers/video/controlfb.c

@@ -176,7 +176,6 @@ static struct fb_ops controlfb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 
 

+ 0 - 1
drivers/video/cyber2000fb.c

@@ -1064,7 +1064,6 @@ static struct fb_ops cyber2000fb_ops = {
 	.fb_fillrect	= cyber2000fb_fillrect,
 	.fb_fillrect	= cyber2000fb_fillrect,
 	.fb_copyarea	= cyber2000fb_copyarea,
 	.fb_copyarea	= cyber2000fb_copyarea,
 	.fb_imageblit	= cyber2000fb_imageblit,
 	.fb_imageblit	= cyber2000fb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_sync	= cyber2000fb_sync,
 	.fb_sync	= cyber2000fb_sync,
 };
 };
 
 

+ 0 - 1
drivers/video/cyblafb.c

@@ -968,7 +968,6 @@ static struct fb_ops cyblafb_ops __devinitdata = {
 	.fb_fillrect = cyblafb_fillrect,
 	.fb_fillrect = cyblafb_fillrect,
 	.fb_copyarea= cyblafb_copyarea,
 	.fb_copyarea= cyblafb_copyarea,
 	.fb_imageblit = cyblafb_imageblit,
 	.fb_imageblit = cyblafb_imageblit,
-	.fb_cursor = soft_cursor,
 };
 };
 
 
 //==========================================================================
 //==========================================================================

+ 0 - 1
drivers/video/dnfb.c

@@ -116,7 +116,6 @@ static struct fb_ops dn_fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= dnfb_copyarea,
 	.fb_copyarea	= dnfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 struct fb_var_screeninfo dnfb_var __devinitdata = {
 struct fb_var_screeninfo dnfb_var __devinitdata = {

+ 0 - 1
drivers/video/epson1355fb.c

@@ -484,7 +484,6 @@ static struct fb_ops epson1355fb_fbops = {
 	.fb_imageblit 	= cfb_imageblit,
 	.fb_imageblit 	= cfb_imageblit,
 	.fb_read 	= epson1355fb_read,
 	.fb_read 	= epson1355fb_read,
 	.fb_write 	= epson1355fb_write,
 	.fb_write 	= epson1355fb_write,
-	.fb_cursor 	= soft_cursor,
 };
 };
 
 
 /* ------------------------------------------------------------------------- */
 /* ------------------------------------------------------------------------- */

+ 0 - 3
drivers/video/ffb.c

@@ -57,9 +57,6 @@ static struct fb_ops ffb_ops = {
 	.fb_sync		= ffb_sync,
 	.fb_sync		= ffb_sync,
 	.fb_mmap		= ffb_mmap,
 	.fb_mmap		= ffb_mmap,
 	.fb_ioctl		= ffb_ioctl,
 	.fb_ioctl		= ffb_ioctl,
-
-	/* XXX Use FFB hw cursor once fb cursor API is better understood... */
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 /* Register layout and definitions */
 /* Register layout and definitions */

+ 0 - 1
drivers/video/fm2fb.c

@@ -172,7 +172,6 @@ static struct fb_ops fm2fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
     /*
     /*

+ 0 - 1
drivers/video/gbefb.c

@@ -1038,7 +1038,6 @@ static struct fb_ops gbefb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 /*
 /*

+ 0 - 1
drivers/video/geode/Kconfig

@@ -14,7 +14,6 @@ config FB_GEODE_GX1
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
-	select FB_SOFT_CURSOR
 	---help---
 	---help---
 	  Framebuffer driver for the display controller integrated into the
 	  Framebuffer driver for the display controller integrated into the
 	  AMD Geode GX1 processor.
 	  AMD Geode GX1 processor.

+ 0 - 1
drivers/video/geode/gx1fb_core.c

@@ -275,7 +275,6 @@ static struct fb_ops gx1fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 static struct fb_info * __init gx1fb_init_fbinfo(struct device *dev)
 static struct fb_info * __init gx1fb_init_fbinfo(struct device *dev)

+ 0 - 1
drivers/video/hitfb.c

@@ -262,7 +262,6 @@ static struct fb_ops hitfb_ops = {
 	.fb_fillrect	= hitfb_fillrect,
 	.fb_fillrect	= hitfb_fillrect,
 	.fb_copyarea	= hitfb_copyarea,
 	.fb_copyarea	= hitfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 int __init hitfb_init(void)
 int __init hitfb_init(void)

+ 0 - 1
drivers/video/hpfb.c

@@ -193,7 +193,6 @@ static struct fb_ops hpfb_ops = {
 	.fb_fillrect	= hpfb_fillrect,
 	.fb_fillrect	= hpfb_fillrect,
 	.fb_copyarea	= hpfb_copyarea,
 	.fb_copyarea	= hpfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_sync	= hpfb_sync,
 	.fb_sync	= hpfb_sync,
 };
 };
 
 

+ 0 - 1
drivers/video/imsttfb.c

@@ -1344,7 +1344,6 @@ static struct fb_ops imsttfb_ops = {
 	.fb_fillrect	= imsttfb_fillrect,
 	.fb_fillrect	= imsttfb_fillrect,
 	.fb_copyarea	= imsttfb_copyarea,
 	.fb_copyarea	= imsttfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_ioctl 	= imsttfb_ioctl,
 	.fb_ioctl 	= imsttfb_ioctl,
 };
 };
 
 

+ 0 - 1
drivers/video/imxfb.c

@@ -298,7 +298,6 @@ static struct fb_ops imxfb_ops = {
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_blank	= imxfb_blank,
 	.fb_blank	= imxfb_blank,
-	.fb_cursor	= soft_cursor, /* FIXME: i.MX can do hardware cursor */
 };
 };
 
 
 /*
 /*

+ 1 - 1
drivers/video/intelfb/intelfbdrv.c

@@ -1485,7 +1485,7 @@ intelfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 #endif
 #endif
 
 
 	if (!dinfo->hwcursor)
 	if (!dinfo->hwcursor)
-		return soft_cursor(info, cursor);
+		return -ENODEV;
 
 
 	intelfbhw_cursor_hide(dinfo);
 	intelfbhw_cursor_hide(dinfo);
 
 

+ 0 - 1
drivers/video/kyro/fbdev.c

@@ -669,7 +669,6 @@ static struct fb_ops kyrofb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 static int __devinit kyrofb_probe(struct pci_dev *pdev,
 static int __devinit kyrofb_probe(struct pci_dev *pdev,

+ 0 - 1
drivers/video/leo.c

@@ -51,7 +51,6 @@ static struct fb_ops leo_ops = {
 	.fb_imageblit		= cfb_imageblit,
 	.fb_imageblit		= cfb_imageblit,
 	.fb_mmap		= leo_mmap,
 	.fb_mmap		= leo_mmap,
 	.fb_ioctl		= leo_ioctl,
 	.fb_ioctl		= leo_ioctl,
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 #define LEO_OFF_LC_SS0_KRN	0x00200000UL
 #define LEO_OFF_LC_SS0_KRN	0x00200000UL

+ 0 - 1
drivers/video/macfb.c

@@ -589,7 +589,6 @@ static struct fb_ops macfb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 void __init macfb_setup(char *options)
 void __init macfb_setup(char *options)

+ 1 - 1
drivers/video/matrox/matroxfb_accel.c

@@ -122,7 +122,7 @@ void matrox_cfbX_init(WPMINFO2) {
 	ACCESS_FBINFO(fbops).fb_copyarea = cfb_copyarea;
 	ACCESS_FBINFO(fbops).fb_copyarea = cfb_copyarea;
 	ACCESS_FBINFO(fbops).fb_fillrect = cfb_fillrect;
 	ACCESS_FBINFO(fbops).fb_fillrect = cfb_fillrect;
 	ACCESS_FBINFO(fbops).fb_imageblit = cfb_imageblit;
 	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;
 	accel = (ACCESS_FBINFO(fbcon).var.accel_flags & FB_ACCELF_TEXT) == FB_ACCELF_TEXT;
 
 

+ 0 - 1
drivers/video/matrox/matroxfb_crtc2.c

@@ -576,7 +576,6 @@ static struct fb_ops matroxfb_dh_ops = {
 	.fb_fillrect =	cfb_fillrect,
 	.fb_fillrect =	cfb_fillrect,
 	.fb_copyarea =	cfb_copyarea,
 	.fb_copyarea =	cfb_copyarea,
 	.fb_imageblit =	cfb_imageblit,
 	.fb_imageblit =	cfb_imageblit,
-	.fb_cursor =	soft_cursor,
 };
 };
 
 
 static struct fb_var_screeninfo matroxfb_dh_defined = {
 static struct fb_var_screeninfo matroxfb_dh_defined = {

+ 0 - 1
drivers/video/maxinefb.c

@@ -113,7 +113,6 @@ static struct fb_ops maxinefb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 int __init maxinefb_init(void)
 int __init maxinefb_init(void)

+ 0 - 1
drivers/video/neofb.c

@@ -1665,7 +1665,6 @@ static struct fb_ops neofb_ops = {
 	.fb_fillrect	= neofb_fillrect,
 	.fb_fillrect	= neofb_fillrect,
 	.fb_copyarea	= neofb_copyarea,
 	.fb_copyarea	= neofb_copyarea,
 	.fb_imageblit	= neofb_imageblit,
 	.fb_imageblit	= neofb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 /* --------------------------------------------------------------------- */
 /* --------------------------------------------------------------------- */

+ 1 - 1
drivers/video/nvidia/nvidia.c

@@ -1433,7 +1433,7 @@ static int __devinit nvidia_set_fbinfo(struct fb_info *info)
 	info->pixmap.flags = FB_PIXMAP_SYSTEM;
 	info->pixmap.flags = FB_PIXMAP_SYSTEM;
 
 
 	if (!hwcur)
 	if (!hwcur)
-	    info->fbops->fb_cursor = soft_cursor;
+	    info->fbops->fb_cursor = NULL;
 
 
 	info->var.accel_flags = (!noaccel);
 	info->var.accel_flags = (!noaccel);
 
 

+ 0 - 1
drivers/video/offb.c

@@ -85,7 +85,6 @@ static struct fb_ops offb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
     /*
     /*

+ 0 - 1
drivers/video/p9100.c

@@ -48,7 +48,6 @@ static struct fb_ops p9100_ops = {
 	.fb_imageblit		= cfb_imageblit,
 	.fb_imageblit		= cfb_imageblit,
 	.fb_mmap		= p9100_mmap,
 	.fb_mmap		= p9100_mmap,
 	.fb_ioctl		= p9100_ioctl,
 	.fb_ioctl		= p9100_ioctl,
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 /* P9100 control registers */
 /* P9100 control registers */

+ 0 - 1
drivers/video/platinumfb.c

@@ -109,7 +109,6 @@ static struct fb_ops platinumfb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 /*
 /*

+ 0 - 1
drivers/video/pm2fb.c

@@ -1034,7 +1034,6 @@ static struct fb_ops pm2fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 /*
 /*

+ 0 - 1
drivers/video/pmag-ba-fb.c

@@ -128,7 +128,6 @@ static struct fb_ops pmagbafb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 
 

+ 0 - 1
drivers/video/pmagb-b-fb.c

@@ -132,7 +132,6 @@ static struct fb_ops pmagbbfb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 
 

+ 0 - 1
drivers/video/pvr2fb.c

@@ -230,7 +230,6 @@ static struct fb_ops pvr2fb_ops = {
 	.fb_fillrect 	= cfb_fillrect,
 	.fb_fillrect 	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 static struct fb_videomode pvr2_modedb[] __initdata = {
 static struct fb_videomode pvr2_modedb[] __initdata = {

+ 0 - 1
drivers/video/pxafb.c

@@ -418,7 +418,6 @@ static struct fb_ops pxafb_ops = {
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_blank	= pxafb_blank,
 	.fb_blank	= pxafb_blank,
-	.fb_cursor	= soft_cursor,
 	.fb_mmap	= pxafb_mmap,
 	.fb_mmap	= pxafb_mmap,
 };
 };
 
 

+ 0 - 1
drivers/video/q40fb.c

@@ -84,7 +84,6 @@ static struct fb_ops q40fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 static int __init q40fb_probe(struct device *device)
 static int __init q40fb_probe(struct device *device)

+ 0 - 1
drivers/video/radeonfb.c

@@ -2218,7 +2218,6 @@ static struct fb_ops radeonfb_ops = {
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
 #endif
 #endif
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 
 

+ 0 - 1
drivers/video/s1d13xxxfb.c

@@ -388,7 +388,6 @@ static struct fb_ops s1d13xxxfb_fbops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor
 };
 };
 
 
 static int s1d13xxxfb_width_tab[2][4] __devinitdata = {
 static int s1d13xxxfb_width_tab[2][4] __devinitdata = {

+ 0 - 1
drivers/video/s3c2410fb.c

@@ -495,7 +495,6 @@ static struct fb_ops s3c2410fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 
 

+ 0 - 1
drivers/video/sa1100fb.c

@@ -853,7 +853,6 @@ static struct fb_ops sa1100fb_ops = {
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_blank	= sa1100fb_blank,
 	.fb_blank	= sa1100fb_blank,
-	.fb_cursor	= soft_cursor,
 	.fb_mmap	= sa1100fb_mmap,
 	.fb_mmap	= sa1100fb_mmap,
 };
 };
 
 

+ 0 - 1
drivers/video/savage/savagefb_driver.c

@@ -1470,7 +1470,6 @@ static struct fb_ops savagefb_ops = {
 	.fb_copyarea    = cfb_copyarea,
 	.fb_copyarea    = cfb_copyarea,
 	.fb_imageblit   = cfb_imageblit,
 	.fb_imageblit   = cfb_imageblit,
 #endif
 #endif
-	.fb_cursor      = soft_cursor,
 };
 };
 
 
 /* --------------------------------------------------------------------- */
 /* --------------------------------------------------------------------- */

+ 0 - 1
drivers/video/sgivwfb.c

@@ -126,7 +126,6 @@ static struct fb_ops sgivwfb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_mmap	= sgivwfb_mmap,
 	.fb_mmap	= sgivwfb_mmap,
 };
 };
 
 

+ 2 - 0
drivers/video/sis/sis_main.c

@@ -2002,7 +2002,9 @@ static struct fb_ops sisfb_ops = {
 	.fb_fillrect	= fbcon_sis_fillrect,
 	.fb_fillrect	= fbcon_sis_fillrect,
 	.fb_copyarea	= fbcon_sis_copyarea,
 	.fb_copyarea	= fbcon_sis_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
+#ifdef CONFIG_FB_SOFT_CURSOR
 	.fb_cursor	= soft_cursor,
 	.fb_cursor	= soft_cursor,
+#endif
 	.fb_sync	= fbcon_sis_sync,
 	.fb_sync	= fbcon_sis_sync,
 #ifdef SIS_NEW_CONFIG_COMPAT
 #ifdef SIS_NEW_CONFIG_COMPAT
 	.fb_compat_ioctl= sisfb_compat_ioctl,
 	.fb_compat_ioctl= sisfb_compat_ioctl,

+ 3 - 6
drivers/video/skeletonfb.c

@@ -457,11 +457,8 @@ void xxxfb_imageblit(struct fb_info *p, const struct fb_image *image)
 }
 }
 
 
 /**
 /**
- *	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
  *      @info: frame buffer structure that represents a single frame buffer
  *	@cursor: structure defining the cursor to draw.
  *	@cursor: structure defining the cursor to draw.
@@ -663,7 +660,7 @@ static struct fb_ops xxxfb_ops = {
 	.fb_fillrect	= xxxfb_fillrect, 	/* Needed !!! */ 
 	.fb_fillrect	= xxxfb_fillrect, 	/* Needed !!! */ 
 	.fb_copyarea	= xxxfb_copyarea,	/* Needed !!! */ 
 	.fb_copyarea	= xxxfb_copyarea,	/* Needed !!! */ 
 	.fb_imageblit	= xxxfb_imageblit,	/* Needed !!! */
 	.fb_imageblit	= xxxfb_imageblit,	/* Needed !!! */
-	.fb_cursor	= xxxfb_cursor,		/* Needed !!! */
+	.fb_cursor	= xxxfb_cursor,		/* Optional !!! */
 	.fb_rotate	= xxxfb_rotate,
 	.fb_rotate	= xxxfb_rotate,
 	.fb_poll	= xxxfb_poll,
 	.fb_poll	= xxxfb_poll,
 	.fb_sync	= xxxfb_sync,
 	.fb_sync	= xxxfb_sync,

+ 0 - 1
drivers/video/sstfb.c

@@ -1382,7 +1382,6 @@ static struct fb_ops sstfb_ops = {
 	.fb_fillrect	= cfb_fillrect, /* sstfb_fillrect */
 	.fb_fillrect	= cfb_fillrect, /* sstfb_fillrect */
 	.fb_copyarea	= cfb_copyarea, /* sstfb_copyarea */
 	.fb_copyarea	= cfb_copyarea, /* sstfb_copyarea */
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_ioctl	= sstfb_ioctl,
 	.fb_ioctl	= sstfb_ioctl,
 };
 };
 
 

+ 0 - 1
drivers/video/stifb.c

@@ -1147,7 +1147,6 @@ static struct fb_ops stifb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor      = soft_cursor,
 };
 };
 
 
 
 

+ 0 - 1
drivers/video/tcx.c

@@ -52,7 +52,6 @@ static struct fb_ops tcx_ops = {
 	.fb_imageblit		= cfb_imageblit,
 	.fb_imageblit		= cfb_imageblit,
 	.fb_mmap		= tcx_mmap,
 	.fb_mmap		= tcx_mmap,
 	.fb_ioctl		= tcx_ioctl,
 	.fb_ioctl		= tcx_ioctl,
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 /* THC definitions */
 /* THC definitions */

+ 0 - 1
drivers/video/tdfxfb.c

@@ -184,7 +184,6 @@ static struct fb_ops tdfxfb_ops = {
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
 #endif
 #endif
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 /*
 /*

+ 0 - 1
drivers/video/tgafb.c

@@ -63,7 +63,6 @@ static struct fb_ops tgafb_ops = {
 	.fb_fillrect		= tgafb_fillrect,
 	.fb_fillrect		= tgafb_fillrect,
 	.fb_copyarea		= tgafb_copyarea,
 	.fb_copyarea		= tgafb_copyarea,
 	.fb_imageblit		= tgafb_imageblit,
 	.fb_imageblit		= tgafb_imageblit,
-	.fb_cursor		= soft_cursor,
 };
 };
 
 
 
 

+ 0 - 1
drivers/video/tridentfb.c

@@ -1293,7 +1293,6 @@ static struct fb_ops tridentfb_ops = {
 	.fb_fillrect = tridentfb_fillrect,
 	.fb_fillrect = tridentfb_fillrect,
 	.fb_copyarea= tridentfb_copyarea,
 	.fb_copyarea= tridentfb_copyarea,
 	.fb_imageblit = cfb_imageblit,
 	.fb_imageblit = cfb_imageblit,
-	.fb_cursor = soft_cursor,
 };
 };
 
 
 module_init(tridentfb_init);
 module_init(tridentfb_init);

+ 0 - 1
drivers/video/tx3912fb.c

@@ -89,7 +89,6 @@ static struct fb_ops tx3912fb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 static int tx3912fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 static int tx3912fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)

+ 0 - 1
drivers/video/valkyriefb.c

@@ -135,7 +135,6 @@ static struct fb_ops valkyriefb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 /* Sets the video mode according to info->var */
 /* Sets the video mode according to info->var */

+ 0 - 1
drivers/video/vesafb.c

@@ -215,7 +215,6 @@ static struct fb_ops vesafb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 };
 };
 
 
 static int __init vesafb_setup(char *options)
 static int __init vesafb_setup(char *options)

+ 0 - 1
drivers/video/vfb.c

@@ -92,7 +92,6 @@ static struct fb_ops vfb_ops = {
 	.fb_fillrect	= cfb_fillrect,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_imageblit	= cfb_imageblit,
-	.fb_cursor	= soft_cursor,
 	.fb_mmap	= vfb_mmap,
 	.fb_mmap	= vfb_mmap,
 };
 };
 
 

+ 0 - 1
drivers/video/vga16fb.c

@@ -1326,7 +1326,6 @@ static struct fb_ops vga16fb_ops = {
 	.fb_fillrect	= vga16fb_fillrect,
 	.fb_fillrect	= vga16fb_fillrect,
 	.fb_copyarea	= vga16fb_copyarea,
 	.fb_copyarea	= vga16fb_copyarea,
 	.fb_imageblit	= vga16fb_imageblit,
 	.fb_imageblit	= vga16fb_imageblit,
-	.fb_cursor      = soft_cursor,
 };
 };
 
 
 #ifndef MODULE
 #ifndef MODULE

+ 0 - 1
drivers/video/w100fb.c

@@ -397,7 +397,6 @@ static struct fb_ops w100fb_ops = {
 	.fb_fillrect  = cfb_fillrect,
 	.fb_fillrect  = cfb_fillrect,
 	.fb_copyarea  = cfb_copyarea,
 	.fb_copyarea  = cfb_copyarea,
 	.fb_imageblit = cfb_imageblit,
 	.fb_imageblit = cfb_imageblit,
-	.fb_cursor    = soft_cursor,
 };
 };
 
 
 #ifdef CONFIG_PM
 #ifdef CONFIG_PM

+ 0 - 1
include/linux/fb.h

@@ -810,7 +810,6 @@ struct fb_info {
 extern int fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var); 
 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_pan_display(struct fb_info *info, struct fb_var_screeninfo *var); 
 extern int fb_blank(struct fb_info *info, int blank);
 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_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_copyarea(struct fb_info *info, const struct fb_copyarea *area); 
 extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image);
 extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image);