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

This patch contains cleanups including the following:
- make needlessly global code static
- remove the needlessly #ifdef MODULE from several module_exit
- remove or #if 0 the following unused global functions:
  - fbmon.c: fb_create_modedb
  - fbmon.c: fb_get_monitor_limits
  - nvidia/nv_i2c.c: nvidia_delete_i2c_busses
  - nvidia/nv_setup.c: NVEnablePalette
  - nvidia/nv_setup.c: NVReadDacMask
- remove the following unneeded EXPORT_SYMBOL's:
  - fbmon.c: fb_create_modedb
  - fbmon.c: fb_get_monitor_limits
  - hgafb.c: hgafb_setup

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/video/aty/aty128fb.c        |   13 +---
 25-akpm/drivers/video/aty/atyfb.h           |    1 
 25-akpm/drivers/video/aty/atyfb_base.c      |   14 ++---
 25-akpm/drivers/video/aty/mach64_ct.c       |    7 +-
 25-akpm/drivers/video/aty/mach64_cursor.c   |    2 
 25-akpm/drivers/video/aty/radeon_base.c     |   46 ++++++++---------
 25-akpm/drivers/video/aty/radeon_pm.c       |    4 -
 25-akpm/drivers/video/aty/radeonfb.h        |    1 
 25-akpm/drivers/video/backlight/backlight.c |    2 
 25-akpm/drivers/video/backlight/lcd.c       |    2 
 25-akpm/drivers/video/cyber2000fb.c         |    6 +-
 25-akpm/drivers/video/fbmem.c               |    9 +--
 25-akpm/drivers/video/fbmon.c               |   14 -----
 25-akpm/drivers/video/geode/gx1fb_core.c    |    4 -
 25-akpm/drivers/video/hgafb.c               |   14 +----
 25-akpm/drivers/video/i810/i810_main.c      |    2 
 25-akpm/drivers/video/imsttfb.c             |    7 +-
 25-akpm/drivers/video/intelfb/intelfbdrv.c  |   73 ++++++++++++----------------
 25-akpm/drivers/video/intelfb/intelfbdrv.h  |    2 
 25-akpm/drivers/video/neofb.c               |   16 +++---
 25-akpm/drivers/video/nvidia/nv_accel.c     |    4 -
 25-akpm/drivers/video/nvidia/nv_i2c.c       |    2 
 25-akpm/drivers/video/nvidia/nv_of.c        |    1 
 25-akpm/drivers/video/nvidia/nv_proto.h     |    5 -
 25-akpm/drivers/video/nvidia/nv_setup.c     |    4 +
 25-akpm/drivers/video/nvidia/nvidia.c       |    4 -
 25-akpm/drivers/video/pm2fb.c               |   60 ++++++++---------------
 25-akpm/drivers/video/radeonfb.c            |   44 +++++++---------
 25-akpm/drivers/video/riva/fbdev.c          |    8 +--
 25-akpm/drivers/video/tdfxfb.c              |   51 ++++++++-----------
 25-akpm/drivers/video/vesafb.c              |   12 ----
 25-akpm/drivers/video/vfb.c                 |   12 +---
 25-akpm/include/linux/fb.h                  |    3 -
 33 files changed, 190 insertions(+), 259 deletions(-)

diff -puN drivers/video/aty/aty128fb.c~fbdev-cleanups-in-driver-video drivers/video/aty/aty128fb.c
--- 25/drivers/video/aty/aty128fb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/aty/aty128fb.c	Sun Mar  6 17:18:11 2005
@@ -425,11 +425,6 @@ struct aty128fb_par {
 
 #define round_div(n, d) ((n+(d/2))/d)
 
-    /*
-     *  Interface used by the world
-     */
-int aty128fb_init(void);
-
 static int aty128fb_check_var(struct fb_var_screeninfo *var,
 			      struct fb_info *info);
 static int aty128fb_set_par(struct fb_info *info);
@@ -1648,7 +1643,8 @@ static int aty128fb_sync(struct fb_info 
 	return 0;
 }
 
-int __init aty128fb_setup(char *options)
+#ifndef MODULE
+static int __init aty128fb_setup(char *options)
 {
 	char *this_opt;
 
@@ -1701,6 +1697,7 @@ int __init aty128fb_setup(char *options)
 	}
 	return 0;
 }
+#endif  /*  MODULE  */
 
 
 /*
@@ -2454,7 +2451,7 @@ static int aty128_pci_resume(struct pci_
 }
 
 
-int __init aty128fb_init(void)
+static int __init aty128fb_init(void)
 {
 #ifndef MODULE
 	char *option = NULL;
@@ -2474,7 +2471,6 @@ static void __exit aty128fb_exit(void)
 
 module_init(aty128fb_init);
 
-#ifdef MODULE
 module_exit(aty128fb_exit);
 
 MODULE_AUTHOR("(c)1999-2003 Brad Douglas <brad@neruo.com>");
@@ -2486,5 +2482,4 @@ MODULE_PARM_DESC(mode_option, "Specify r
 module_param_named(nomtrr, mtrr, invbool, 0);
 MODULE_PARM_DESC(nomtrr, "bool: Disable MTRR support (0 or 1=disabled) (default=0)");
 #endif
-#endif
 
diff -puN drivers/video/aty/atyfb_base.c~fbdev-cleanups-in-driver-video drivers/video/aty/atyfb_base.c
--- 25/drivers/video/aty/atyfb_base.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/aty/atyfb_base.c	Sun Mar  6 17:18:11 2005
@@ -265,7 +265,7 @@ static int read_aty_sense(const struct a
      *  Interface used by the world
      */
 
-struct fb_var_screeninfo default_var = {
+static struct fb_var_screeninfo default_var = {
 	/* 640x480, 60 Hz, Non-Interlaced (25.175 MHz dotclock) */
 	640, 480, 640, 480, 0, 0, 8, 0,
 	{0, 8, 0}, {0, 8, 0}, {0, 8, 0}, {0, 0, 0},
@@ -2990,7 +2990,7 @@ static int __devinit atyfb_setup_sparc(s
 
 #ifdef __i386__
 #ifdef CONFIG_FB_ATY_GENERIC_LCD
-void aty_init_lcd(struct atyfb_par *par, u32 bios_base)
+static void aty_init_lcd(struct atyfb_par *par, u32 bios_base)
 {
 	u32 driv_inf_tab, sig;
 	u16 lcd_ofs;
@@ -3589,7 +3589,8 @@ static struct pci_driver atyfb_driver = 
 
 #endif /* CONFIG_PCI */
 
-int __init atyfb_setup(char *options)
+#ifndef MODULE
+static int __init atyfb_setup(char *options)
 {
 	char *this_opt;
 
@@ -3657,8 +3658,9 @@ int __init atyfb_setup(char *options)
 	}
 	return 0;
 }
+#endif  /*  MODULE  */
 
-int __init atyfb_init(void)
+static int __init atyfb_init(void)
 {
 #ifndef MODULE
     char *option = NULL;
@@ -3677,7 +3679,7 @@ int __init atyfb_init(void)
     return 0;
 }
 
-void __exit atyfb_exit(void)
+static void __exit atyfb_exit(void)
 {
 #ifdef CONFIG_PCI
 	pci_unregister_driver(&atyfb_driver);
@@ -3685,9 +3687,7 @@ void __exit atyfb_exit(void)
 }
 
 module_init(atyfb_init);
-#ifdef MODULE
 module_exit(atyfb_exit);
-#endif
 
 MODULE_DESCRIPTION("FBDev driver for ATI Mach64 cards");
 MODULE_LICENSE("GPL");
diff -puN drivers/video/aty/atyfb.h~fbdev-cleanups-in-driver-video drivers/video/aty/atyfb.h
--- 25/drivers/video/aty/atyfb.h~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/aty/atyfb.h	Sun Mar  6 17:18:11 2005
@@ -334,7 +334,6 @@ extern u8 aty_ld_pll_ct(int offset, cons
      */
 
 extern int aty_init_cursor(struct fb_info *info);
-extern int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor);
 
     /*
      *  Hardware acceleration
diff -puN drivers/video/aty/mach64_ct.c~fbdev-cleanups-in-driver-video drivers/video/aty/mach64_ct.c
--- 25/drivers/video/aty/mach64_ct.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/aty/mach64_ct.c	Sun Mar  6 17:18:11 2005
@@ -359,7 +359,8 @@ void aty_set_pll_ct(const struct fb_info
 #endif
 }
 
-void __init aty_get_pll_ct(const struct fb_info *info, union aty_pll *pll)
+static void __init aty_get_pll_ct(const struct fb_info *info,
+				  union aty_pll *pll)
 {
 	struct atyfb_par *par = (struct atyfb_par *) info->par;
 	u8 tmp, clock;
@@ -382,7 +383,9 @@ void __init aty_get_pll_ct(const struct 
 	}
 }
 
-int __init aty_init_pll_ct(const struct fb_info *info, union aty_pll *pll) {
+static int __init aty_init_pll_ct(const struct fb_info *info,
+				 union aty_pll *pll)
+{
 	struct atyfb_par *par = (struct atyfb_par *) info->par;
 	u8 mpost_div, xpost_div, sclk_post_div_real, sclk_fb_div, spll_cntl2;
 	u32 q, i, memcntl, trp;
diff -puN drivers/video/aty/mach64_cursor.c~fbdev-cleanups-in-driver-video drivers/video/aty/mach64_cursor.c
--- 25/drivers/video/aty/mach64_cursor.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/aty/mach64_cursor.c	Sun Mar  6 17:18:11 2005
@@ -71,7 +71,7 @@ static const u8 cursor_mask_lookup[16] =
 	0xa8, 0x28, 0x88, 0x08, 0xa0, 0x20, 0x80, 0x00
 };
 
-int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
+static int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 {
 	struct atyfb_par *par = (struct atyfb_par *) info->par;
 	u16 xoff, yoff;
diff -puN drivers/video/aty/radeon_base.c~fbdev-cleanups-in-driver-video drivers/video/aty/radeon_base.c
--- 25/drivers/video/aty/radeon_base.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/aty/radeon_base.c	Sun Mar  6 17:18:11 2005
@@ -1139,7 +1139,8 @@ static int radeonfb_setcolreg (unsigned 
 }
 
 
-void radeon_save_state (struct radeonfb_info *rinfo, struct radeon_regs *save)
+static void radeon_save_state (struct radeonfb_info *rinfo,
+			       struct radeon_regs *save)
 {
 	/* CRTC regs */
 	save->crtc_gen_cntl = INREG(CRTC_GEN_CNTL);
@@ -2486,27 +2487,8 @@ static struct pci_driver radeonfb_driver
 #endif /* CONFIG_PM */
 };
 
-int __init radeonfb_setup (char *options);
-
-int __init radeonfb_init (void)
-{
 #ifndef MODULE
-	char *option = NULL;
-
-	if (fb_get_options("radeonfb", &option))
-		return -ENODEV;
-	radeonfb_setup(option);
-#endif
-	return pci_module_init (&radeonfb_driver);
-}
-
-
-void __exit radeonfb_exit (void)
-{
-	pci_unregister_driver (&radeonfb_driver);
-}
-
-int __init radeonfb_setup (char *options)
+static int __init radeonfb_setup (char *options)
 {
 	char *this_opt;
 
@@ -2540,12 +2522,28 @@ int __init radeonfb_setup (char *options
 	}
 	return 0;
 }
+#endif  /*  MODULE  */
 
-module_init(radeonfb_init);
+static int __init radeonfb_init (void)
+{
+#ifndef MODULE
+	char *option = NULL;
 
-#ifdef MODULE
-module_exit(radeonfb_exit);
+	if (fb_get_options("radeonfb", &option))
+		return -ENODEV;
+	radeonfb_setup(option);
 #endif
+	return pci_module_init (&radeonfb_driver);
+}
+
+
+static void __exit radeonfb_exit (void)
+{
+	pci_unregister_driver (&radeonfb_driver);
+}
+
+module_init(radeonfb_init);
+module_exit(radeonfb_exit);
 
 MODULE_AUTHOR("Ani Joshi");
 MODULE_DESCRIPTION("framebuffer driver for ATI Radeon chipset");
diff -puN drivers/video/aty/radeonfb.h~fbdev-cleanups-in-driver-video drivers/video/aty/radeonfb.h
--- 25/drivers/video/aty/radeonfb.h~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/aty/radeonfb.h	Sun Mar  6 17:18:11 2005
@@ -647,7 +647,6 @@ extern void radeonfb_engine_reset(struct
 
 /* Other functions */
 extern int radeon_screen_blank(struct radeonfb_info *rinfo, int blank, int mode_switch);
-extern void radeon_save_state (struct radeonfb_info *rinfo, struct radeon_regs *save);
 extern void radeon_write_mode (struct radeonfb_info *rinfo, struct radeon_regs *mode,
 			       int reg_only);
 
diff -puN drivers/video/aty/radeon_pm.c~fbdev-cleanups-in-driver-video drivers/video/aty/radeon_pm.c
--- 25/drivers/video/aty/radeon_pm.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/aty/radeon_pm.c	Sun Mar  6 17:18:11 2005
@@ -27,7 +27,7 @@
 
 #include "ati_ids.h"
 
-void radeon_pm_disable_dynamic_mode(struct radeonfb_info *rinfo)
+static void radeon_pm_disable_dynamic_mode(struct radeonfb_info *rinfo)
 {
 	u32 tmp;
 
@@ -229,7 +229,7 @@ void radeon_pm_disable_dynamic_mode(stru
 	radeon_msleep(16);
 }
 
-void radeon_pm_enable_dynamic_mode(struct radeonfb_info *rinfo)
+static void radeon_pm_enable_dynamic_mode(struct radeonfb_info *rinfo)
 {
 	u32 tmp;
 
diff -puN drivers/video/backlight/backlight.c~fbdev-cleanups-in-driver-video drivers/video/backlight/backlight.c
--- 25/drivers/video/backlight/backlight.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/backlight/backlight.c	Sun Mar  6 17:18:11 2005
@@ -111,7 +111,7 @@ static void backlight_class_release(stru
 	kfree(bd);
 }
 
-struct class backlight_class = {
+static struct class backlight_class = {
 	.name = "backlight",
 	.release = backlight_class_release,
 };
diff -puN drivers/video/backlight/lcd.c~fbdev-cleanups-in-driver-video drivers/video/backlight/lcd.c
--- 25/drivers/video/backlight/lcd.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/backlight/lcd.c	Sun Mar  6 17:18:11 2005
@@ -111,7 +111,7 @@ static void lcd_class_release(struct cla
 	kfree(ld);
 }
 
-struct class lcd_class = {
+static struct class lcd_class = {
 	.name = "lcd",
 	.release = lcd_class_release,
 };
diff -puN drivers/video/cyber2000fb.c~fbdev-cleanups-in-driver-video drivers/video/cyber2000fb.c
--- 25/drivers/video/cyber2000fb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/cyber2000fb.c	Sun Mar  6 17:18:11 2005
@@ -1306,7 +1306,8 @@ cyberpro_free_fb_info(struct cfb_info *c
  * Parse Cyber2000fb options.  Usage:
  *  video=cyber2000:font:fontname
  */
-int
+#ifndef MODULE
+static int
 cyber2000fb_setup(char *options)
 {
 	char *opt;
@@ -1328,6 +1329,7 @@ cyber2000fb_setup(char *options)
 	}
 	return 0;
 }
+#endif  /*  MODULE  */
 
 /*
  * The CyberPro chips can be placed on many different bus types.
@@ -1717,7 +1719,7 @@ static struct pci_driver cyberpro_driver
  *
  * Tony: "module_init" is now required
  */
-int __init cyber2000fb_init(void)
+static int __init cyber2000fb_init(void)
 {
 	int ret = -1, err;
 
diff -puN drivers/video/fbmem.c~fbdev-cleanups-in-driver-video drivers/video/fbmem.c
--- 25/drivers/video/fbmem.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/fbmem.c	Sun Mar  6 17:18:11 2005
@@ -1189,7 +1189,7 @@ void fb_set_suspend(struct fb_info *info
  *
  */
 
-int __init
+static int __init
 fbmem_init(void)
 {
 	create_proc_read_entry("fb", 0, NULL, fbmem_read_proc, NULL);
@@ -1206,20 +1206,19 @@ fbmem_init(void)
 	return 0;
 }
 
-void __exit
+#ifdef MODULE
+module_init(fbmem_init);
+static void __exit
 fbmem_exit(void)
 {
 	class_simple_destroy(fb_class);
 }
 
-#ifdef MODULE
-module_init(fbmem_init);
 module_exit(fbmem_exit);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Framebuffer base");
 #else
 subsys_initcall(fbmem_init);
-subsys_exitcall(fbmem_exit);
 #endif
 
 int fb_new_modelist(struct fb_info *info)
diff -puN drivers/video/fbmon.c~fbdev-cleanups-in-driver-video drivers/video/fbmon.c
--- 25/drivers/video/fbmon.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/fbmon.c	Sun Mar  6 17:18:11 2005
@@ -518,7 +518,7 @@ static void get_detailed_timing(unsigned
  * This function builds a mode database using the contents of the EDID
  * data
  */
-struct fb_videomode *fb_create_modedb(unsigned char *edid, int *dbsize)
+static struct fb_videomode *fb_create_modedb(unsigned char *edid, int *dbsize)
 {
 	struct fb_videomode *mode, *m;
 	unsigned char *block;
@@ -593,7 +593,7 @@ void fb_destroy_modedb(struct fb_videomo
 		kfree(modedb);
 }
 
-int fb_get_monitor_limits(unsigned char *edid, struct fb_monspecs *specs)
+static int fb_get_monitor_limits(unsigned char *edid, struct fb_monspecs *specs)
 {
 	int i, retval = 1;
 	unsigned char *block;
@@ -1197,17 +1197,9 @@ char *get_EDID_from_firmware(struct devi
 {
 	return NULL;
 }
-struct fb_videomode *fb_create_modedb(unsigned char *edid, int *dbsize)
-{
-	return NULL;
-}
 void fb_destroy_modedb(struct fb_videomode *modedb)
 {
 }
-int fb_get_monitor_limits(unsigned char *edid, struct fb_monspecs *specs)
-{
-	return 1;
-}
 int fb_get_mode(int flags, u32 val, struct fb_var_screeninfo *var,
 		struct fb_info *info)
 {
@@ -1282,6 +1274,4 @@ EXPORT_SYMBOL(get_EDID_from_firmware);
 
 EXPORT_SYMBOL(fb_get_mode);
 EXPORT_SYMBOL(fb_validate_mode);
-EXPORT_SYMBOL(fb_create_modedb);
 EXPORT_SYMBOL(fb_destroy_modedb);
-EXPORT_SYMBOL(fb_get_monitor_limits);
diff -puN drivers/video/geode/gx1fb_core.c~fbdev-cleanups-in-driver-video drivers/video/geode/gx1fb_core.c
--- 25/drivers/video/geode/gx1fb_core.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/geode/gx1fb_core.c	Sun Mar  6 17:18:11 2005
@@ -264,9 +264,9 @@ static struct fb_info * __init gx1fb_ini
 }
 
 
-struct fb_info *gx1fb_info;
+static struct fb_info *gx1fb_info;
 
-int __init gx1fb_init(void)
+static int __init gx1fb_init(void)
 {
 	struct fb_info *info;
         struct geodefb_par *par;
diff -puN drivers/video/hgafb.c~fbdev-cleanups-in-driver-video drivers/video/hgafb.c
--- 25/drivers/video/hgafb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/hgafb.c	Sun Mar  6 17:18:11 2005
@@ -412,7 +412,8 @@ static int hgafb_setcolreg(u_int regno, 
  *	A zero is returned on success and %-EINVAL for failure.
  */
 
-int hgafb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
+static int hgafb_pan_display(struct fb_var_screeninfo *var,
+			     struct fb_info *info)
 {
 	if (var->vmode & FB_VMODE_YWRAP) {
 		if (var->yoffset < 0 || 
@@ -548,7 +549,7 @@ static struct fb_ops hgafb_ops = {
 	 *  Initialization
 	 */
 
-int __init hgafb_init(void)
+static int __init hgafb_init(void)
 {
 	if (fb_get_options("hgafb", NULL))
 		return -ENODEV;
@@ -587,15 +588,6 @@ int __init hgafb_init(void)
 	return 0;
 }
 
-	/*
-	 *  Setup
-	 */
-
-int __init hgafb_setup(char *options)
-{
-	return 0;
-}
-
 #ifdef MODULE
 static void __exit hgafb_exit(void)
 {
diff -puN drivers/video/i810/i810_main.c~fbdev-cleanups-in-driver-video drivers/video/i810/i810_main.c
--- 25/drivers/video/i810/i810_main.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/i810/i810_main.c	Sun Mar  6 17:18:11 2005
@@ -1995,7 +1995,7 @@ int __init i810fb_init(void)
 
 #ifdef MODULE
 
-int __init i810fb_init(void)
+static int __init i810fb_init(void)
 {
 	hsync1 *= 1000;
 	hsync2 *= 1000;
diff -puN drivers/video/imsttfb.c~fbdev-cleanups-in-driver-video drivers/video/imsttfb.c
--- 25/drivers/video/imsttfb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/imsttfb.c	Sun Mar  6 17:18:11 2005
@@ -1547,7 +1547,7 @@ imsttfb_remove(struct pci_dev *pdev)
 }
 
 #ifndef MODULE
-int __init 
+static int __init
 imsttfb_setup(char *options)
 {
 	char *this_opt;
@@ -1601,7 +1601,7 @@ imsttfb_setup(char *options)
 
 #endif /* MODULE */
 
-int __init imsttfb_init(void)
+static int __init imsttfb_init(void)
 {
 #ifndef MODULE
 	char *option = NULL;
@@ -1619,9 +1619,8 @@ static void __exit imsttfb_exit(void)
 	pci_unregister_driver(&imsttfb_pci_driver);
 }
 
-#ifdef MODULE
 MODULE_LICENSE("GPL");
-#endif
+
 module_init(imsttfb_init);
 module_exit(imsttfb_exit);
 
diff -puN drivers/video/intelfb/intelfbdrv.c~fbdev-cleanups-in-driver-video drivers/video/intelfb/intelfbdrv.c
--- 25/drivers/video/intelfb/intelfbdrv.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/intelfb/intelfbdrv.c	Sun Mar  6 17:18:11 2005
@@ -227,42 +227,6 @@ MODULE_PARM_DESC(bailearly, "Bail out ea
 module_param(mode, charp, S_IRUGO);
 MODULE_PARM_DESC(mode,
 		 "Initial video mode \"<xres>x<yres>[-<depth>][@<refresh>]\"");
-/***************************************************************
- *                     modules entry points                    *
- ***************************************************************/
-
-/* module load/unload entry points */
-int __init
-intelfb_init(void)
-{
-#ifndef MODULE
-	char *option = NULL;
-#endif
-
-	DBG_MSG("intelfb_init\n");
-
-	INF_MSG("Framebuffer driver for "
-		"Intel(R) " SUPPORTED_CHIPSETS " chipsets\n");
-	INF_MSG("Version " INTELFB_VERSION "\n");
-
-	if (idonly)
-		return -ENODEV;
-
-#ifndef MODULE
-	if (fb_get_options("intelfb", &option))
-		return -ENODEV;
-	intelfb_setup(option);
-#endif
-
-	return pci_module_init(&intelfb_driver);
-}
-
-static void __exit
-intelfb_exit(void)
-{
-	DBG_MSG("intelfb_exit\n");
-	pci_unregister_driver(&intelfb_driver);
-}
 
 #ifndef MODULE
 #define OPT_EQUAL(opt, name) (!strncmp(opt, name, strlen(name)))
@@ -322,7 +286,7 @@ get_opt_bool(const char *this_opt, const
 	return 1;
 }
 
-int __init
+static int __init
 intelfb_setup(char *options)
 {
 	char *this_opt;
@@ -374,12 +338,41 @@ intelfb_setup(char *options)
 
 #endif
 
-module_init(intelfb_init);
+static int __init
+intelfb_init(void)
+{
+#ifndef MODULE
+	char *option = NULL;
+#endif
 
-#ifdef MODULE
-module_exit(intelfb_exit);
+	DBG_MSG("intelfb_init\n");
+
+	INF_MSG("Framebuffer driver for "
+		"Intel(R) " SUPPORTED_CHIPSETS " chipsets\n");
+	INF_MSG("Version " INTELFB_VERSION "\n");
+
+	if (idonly)
+		return -ENODEV;
+
+#ifndef MODULE
+	if (fb_get_options("intelfb", &option))
+		return -ENODEV;
+	intelfb_setup(option);
 #endif
 
+	return pci_module_init(&intelfb_driver);
+}
+
+static void __exit
+intelfb_exit(void)
+{
+	DBG_MSG("intelfb_exit\n");
+	pci_unregister_driver(&intelfb_driver);
+}
+
+module_init(intelfb_init);
+module_exit(intelfb_exit);
+
 /***************************************************************
  *                     mtrr support functions                  *
  ***************************************************************/
diff -puN drivers/video/intelfb/intelfbdrv.h~fbdev-cleanups-in-driver-video drivers/video/intelfb/intelfbdrv.h
--- 25/drivers/video/intelfb/intelfbdrv.h~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/intelfb/intelfbdrv.h	Sun Mar  6 17:18:11 2005
@@ -28,7 +28,7 @@
  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-int __init intelfb_setup(char *options);
+static int __init intelfb_setup(char *options);
 static void __devinit get_initial_mode(struct intelfb_info *dinfo);
 static void update_dinfo(struct intelfb_info *dinfo,
 			 struct fb_var_screeninfo *var);
diff -puN drivers/video/neofb.c~fbdev-cleanups-in-driver-video drivers/video/neofb.c
--- 25/drivers/video/neofb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/neofb.c	Sun Mar  6 17:18:11 2005
@@ -400,21 +400,21 @@ static void neoUnlock(void)
  */
 static int paletteEnabled = 0;
 
-inline void VGAenablePalette(void)
+static inline void VGAenablePalette(void)
 {
 	vga_r(NULL, VGA_IS1_RC);
 	vga_w(NULL, VGA_ATT_W, 0x00);
 	paletteEnabled = 1;
 }
 
-inline void VGAdisablePalette(void)
+static inline void VGAdisablePalette(void)
 {
 	vga_r(NULL, VGA_IS1_RC);
 	vga_w(NULL, VGA_ATT_W, 0x20);
 	paletteEnabled = 0;
 }
 
-inline void VGAwATTR(u8 index, u8 value)
+static inline void VGAwATTR(u8 index, u8 value)
 {
 	if (paletteEnabled)
 		index &= ~0x20;
@@ -425,7 +425,7 @@ inline void VGAwATTR(u8 index, u8 value)
 	vga_wattr(NULL, index, value);
 }
 
-void vgaHWProtect(int on)
+static void vgaHWProtect(int on)
 {
 	unsigned char tmp;
 
@@ -1315,7 +1315,7 @@ static int neofb_setcolreg(u_int regno, 
 /*
  *    (Un)Blank the display.
  */
-int neofb_blank(int blank_mode, struct fb_info *info)
+static int neofb_blank(int blank_mode, struct fb_info *info)
 {
 	/*
 	 *  Blank the screen if blank_mode != 0, else unblank.
@@ -2230,7 +2230,8 @@ static struct pci_driver neofb_driver = 
 
 /* ************************* init in-kernel code ************************** */
 
-int __init neofb_setup(char *options)
+#ifndef MODULE
+static int __init neofb_setup(char *options)
 {
 	char *this_opt;
 
@@ -2258,8 +2259,9 @@ int __init neofb_setup(char *options)
 	}
 	return 0;
 }
+#endif  /*  MODULE  */
 
-int __init neofb_init(void)
+static int __init neofb_init(void)
 {
 #ifndef MODULE
 	char *option = NULL;
diff -puN drivers/video/nvidia/nv_accel.c~fbdev-cleanups-in-driver-video drivers/video/nvidia/nv_accel.c
--- 25/drivers/video/nvidia/nv_accel.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/nvidia/nv_accel.c	Sun Mar  6 17:18:11 2005
@@ -55,7 +55,7 @@ static inline void NVSync(struct nvidia_
 	}
 }
 
-void NVDmaKickoff(struct nvidia_par *par)
+static void NVDmaKickoff(struct nvidia_par *par)
 {
 	if (par->dmaCurrent != par->dmaPut) {
 		par->dmaPut = par->dmaCurrent;
@@ -63,7 +63,7 @@ void NVDmaKickoff(struct nvidia_par *par
 	}
 }
 
-void NVDmaWait(struct nvidia_par *par, int size)
+static void NVDmaWait(struct nvidia_par *par, int size)
 {
 	int dmaGet;
 	int count = 1000000000, cnt;
diff -puN drivers/video/nvidia/nv_i2c.c~fbdev-cleanups-in-driver-video drivers/video/nvidia/nv_i2c.c
--- 25/drivers/video/nvidia/nv_i2c.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/nvidia/nv_i2c.c	Sun Mar  6 17:18:11 2005
@@ -146,6 +146,7 @@ void nvidia_create_i2c_busses(struct nvi
 	nvidia_setup_i2c_bus(&par->chan[2], "BUS3");
 }
 
+#if 0
 void nvidia_delete_i2c_busses(struct nvidia_par *par)
 {
 	if (par->chan[0].par)
@@ -161,6 +162,7 @@ void nvidia_delete_i2c_busses(struct nvi
 	par->chan[2].par = NULL;
 
 }
+#endif  /*  0  */
 
 static u8 *nvidia_do_probe_i2c_edid(struct nvidia_i2c_chan *chan)
 {
diff -puN drivers/video/nvidia/nvidia.c~fbdev-cleanups-in-driver-video drivers/video/nvidia/nvidia.c
--- 25/drivers/video/nvidia/nvidia.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/nvidia/nvidia.c	Sun Mar  6 17:18:11 2005
@@ -1614,7 +1614,7 @@ static void __exit nvidiafb_remove(struc
  * ------------------------------------------------------------------------- */
 
 #ifndef MODULE
-int __init nvidiafb_setup(char *options)
+static int __init nvidiafb_setup(char *options)
 {
 	char *this_opt;
 
@@ -1667,7 +1667,7 @@ static struct pci_driver nvidiafb_driver
  *
  * ------------------------------------------------------------------------- */
 
-int __devinit nvidiafb_init(void)
+static int __devinit nvidiafb_init(void)
 {
 #ifndef MODULE
 	char *option = NULL;
diff -puN drivers/video/nvidia/nv_of.c~fbdev-cleanups-in-driver-video drivers/video/nvidia/nv_of.c
--- 25/drivers/video/nvidia/nv_of.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/nvidia/nv_of.c	Sun Mar  6 17:18:11 2005
@@ -28,7 +28,6 @@
 #include "nv_proto.h"
 
 void nvidia_create_i2c_busses(struct nvidia_par *par) {}
-void nvidia_delete_i2c_busses(struct nvidia_par *par) {}
 
 int nvidia_probe_i2c_connector(struct nvidia_par *par, int conn, u8 **out_edid)
 {
diff -puN drivers/video/nvidia/nv_proto.h~fbdev-cleanups-in-driver-video drivers/video/nvidia/nv_proto.h
--- 25/drivers/video/nvidia/nv_proto.h~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/nvidia/nv_proto.h	Sun Mar  6 17:18:11 2005
@@ -15,10 +15,7 @@ void NVWriteAttr(struct nvidia_par *par,
 u8 NVReadAttr(struct nvidia_par *par, u8 index);
 void NVWriteMiscOut(struct nvidia_par *par, u8 value);
 u8 NVReadMiscOut(struct nvidia_par *par);
-void NVEnablePalette(struct nvidia_par *par);
-void NVDisablePalette(struct nvidia_par *par);
 void NVWriteDacMask(struct nvidia_par *par, u8 value);
-u8 NVReadDacMask(struct nvidia_par *par);
 void NVWriteDacReadAddr(struct nvidia_par *par, u8 value);
 void NVWriteDacWriteAddr(struct nvidia_par *par, u8 value);
 void NVWriteDacData(struct nvidia_par *par, u8 value);
@@ -36,12 +33,10 @@ void NVLockUnlock(struct nvidia_par *par
 /* in nvidia-i2c.c */
 #if defined(CONFIG_FB_NVIDIA_I2C) || defined (CONFIG_PPC_OF)
 void nvidia_create_i2c_busses(struct nvidia_par *par);
-void nvidia_delete_i2c_busses(struct nvidia_par *par);
 int nvidia_probe_i2c_connector(struct nvidia_par *par, int conn,
 			       u8 ** out_edid);
 #else
 #define nvidia_create_i2c_busses(...)
-#define nvidia_delete_i2c_busses(...)
 #define nvidia_probe_i2c_connector(p, c, edid) \
 do {                                           \
 	*(edid) = NULL;                        \
diff -puN drivers/video/nvidia/nv_setup.c~fbdev-cleanups-in-driver-video drivers/video/nvidia/nv_setup.c
--- 25/drivers/video/nvidia/nv_setup.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/nvidia/nv_setup.c	Sun Mar  6 17:18:11 2005
@@ -108,6 +108,7 @@ u8 NVReadMiscOut(struct nvidia_par *par)
 {
 	return (VGA_RD08(par->PVIO, VGA_MIS_R));
 }
+#if 0
 void NVEnablePalette(struct nvidia_par *par)
 {
 	volatile u8 tmp;
@@ -124,14 +125,17 @@ void NVDisablePalette(struct nvidia_par 
 	VGA_WR08(par->PCIO, VGA_ATT_IW, 0x20);
 	par->paletteEnabled = 0;
 }
+#endif  /*  0  */
 void NVWriteDacMask(struct nvidia_par *par, u8 value)
 {
 	VGA_WR08(par->PDIO, VGA_PEL_MSK, value);
 }
+#if 0
 u8 NVReadDacMask(struct nvidia_par *par)
 {
 	return (VGA_RD08(par->PDIO, VGA_PEL_MSK));
 }
+#endif  /*  0  */
 void NVWriteDacReadAddr(struct nvidia_par *par, u8 value)
 {
 	VGA_WR08(par->PDIO, VGA_PEL_IR, value);
diff -puN drivers/video/pm2fb.c~fbdev-cleanups-in-driver-video drivers/video/pm2fb.c
--- 25/drivers/video/pm2fb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/pm2fb.c	Sun Mar  6 17:18:11 2005
@@ -1243,47 +1243,13 @@ static struct pci_driver pm2fb_driver = 
 MODULE_DEVICE_TABLE(pci, pm2fb_id_table);
 
 
-/*
- *  Initialization
- */
-
-int __init pm2fb_setup(char *options);
-
-int __init pm2fb_init(void)
-{
-#ifndef MODULE
-	char *option = NULL;
-
-	if (fb_get_options("pm2fb", &option))
-		return -ENODEV;
-	pm2fb_setup(option);
-#endif
-
-	return pci_module_init(&pm2fb_driver);
-}
-
-#ifdef MODULE
-/*
- *  Cleanup
- */
-
-static void __exit pm2fb_exit(void)
-{
-	pci_unregister_driver(&pm2fb_driver);
-}
-#endif
-
-/*
- *  Setup
- */
-
 #ifndef MODULE
 /**
  * Parse user speficied options.
  *
  * This is, comma-separated options following `video=pm2fb:'.
  */
-int __init pm2fb_setup(char *options)
+static int __init pm2fb_setup(char *options)
 {
 	char* this_opt;
 
@@ -1306,15 +1272,33 @@ int __init pm2fb_setup(char *options)
 #endif
 
 
-/* ------------------------------------------------------------------------- */
-
-/* ------------------------------------------------------------------------- */
+static int __init pm2fb_init(void)
+{
+#ifndef MODULE
+	char *option = NULL;
 
+	if (fb_get_options("pm2fb", &option))
+		return -ENODEV;
+	pm2fb_setup(option);
+#endif
 
+	return pci_module_init(&pm2fb_driver);
+}
 
 module_init(pm2fb_init);
 
 #ifdef MODULE
+/*
+ *  Cleanup
+ */
+
+static void __exit pm2fb_exit(void)
+{
+	pci_unregister_driver(&pm2fb_driver);
+}
+#endif
+
+#ifdef MODULE
 module_exit(pm2fb_exit);
 
 module_param(mode, charp, 0);
diff -puN drivers/video/radeonfb.c~fbdev-cleanups-in-driver-video drivers/video/radeonfb.c
--- 25/drivers/video/radeonfb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/radeonfb.c	Sun Mar  6 17:18:11 2005
@@ -3109,28 +3109,8 @@ static struct pci_driver radeonfb_driver
 	.remove		= __devexit_p(radeonfb_pci_unregister),
 };
 
-int __init radeonfb_old_setup (char *options);
-
-int __init radeonfb_old_init (void)
-{
 #ifndef MODULE
-	char *option = NULL;
-
-	if (fb_get_options("radeonfb_old", &option))
-		return -ENODEV;
-	radeonfb_old_setup(option);
-#endif
-	return pci_module_init (&radeonfb_driver);
-}
-
-
-void __exit radeonfb_old_exit (void)
-{
-	pci_unregister_driver (&radeonfb_driver);
-}
-
-
-int __init radeonfb_old_setup (char *options)
+static int __init radeonfb_old_setup (char *options)
 {
         char *this_opt;
 
@@ -3156,12 +3136,28 @@ int __init radeonfb_old_setup (char *opt
 
 	return 0;
 }
+#endif  /*  MODULE  */
 
-module_init(radeonfb_old_init);
+static int __init radeonfb_old_init (void)
+{
+#ifndef MODULE
+	char *option = NULL;
 
-#ifdef MODULE
-module_exit(radeonfb_old_exit);
+	if (fb_get_options("radeonfb_old", &option))
+		return -ENODEV;
+	radeonfb_old_setup(option);
 #endif
+	return pci_module_init (&radeonfb_driver);
+}
+
+
+static void __exit radeonfb_old_exit (void)
+{
+	pci_unregister_driver (&radeonfb_driver);
+}
+
+module_init(radeonfb_old_init);
+module_exit(radeonfb_old_exit);
 
 
 MODULE_AUTHOR("Ani Joshi");
diff -puN drivers/video/riva/fbdev.c~fbdev-cleanups-in-driver-video drivers/video/riva/fbdev.c
--- 25/drivers/video/riva/fbdev.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/riva/fbdev.c	Sun Mar  6 17:18:11 2005
@@ -906,7 +906,7 @@ riva_set_pattern(struct riva_par *par, i
 }
 
 /* acceleration routines */
-inline void wait_for_idle(struct riva_par *par)
+static inline void wait_for_idle(struct riva_par *par)
 {
 	while (par->riva.Busy(&par->riva));
 }
@@ -923,7 +923,7 @@ riva_set_rop_solid(struct riva_par *par,
 
 }
 
-void riva_setup_accel(struct fb_info *info)
+static void riva_setup_accel(struct fb_info *info)
 {
 	struct riva_par *par = (struct riva_par *) info->par;
 
@@ -2139,7 +2139,7 @@ static void __exit rivafb_remove(struct 
  * ------------------------------------------------------------------------- */
 
 #ifndef MODULE
-int __init rivafb_setup(char *options)
+static int __init rivafb_setup(char *options)
 {
 	char *this_opt;
 
@@ -2189,7 +2189,7 @@ static struct pci_driver rivafb_driver =
  *
  * ------------------------------------------------------------------------- */
 
-int __devinit rivafb_init(void)
+static int __devinit rivafb_init(void)
 {
 #ifndef MODULE
 	char *option = NULL;
diff -puN drivers/video/tdfxfb.c~fbdev-cleanups-in-driver-video drivers/video/tdfxfb.c
--- 25/drivers/video/tdfxfb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/tdfxfb.c	Sun Mar  6 17:18:11 2005
@@ -154,9 +154,6 @@ MODULE_DEVICE_TABLE(pci, tdfxfb_id_table
 /*
  *  Frame buffer device API
  */
-int tdfxfb_init(void);
-void tdfxfb_setup(char *options);
-
 static int tdfxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *fb); 
 static int tdfxfb_set_par(struct fb_info *info); 
 static int tdfxfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, 
@@ -1292,6 +1289,28 @@ out_err:
 	return -ENXIO;
 }
 
+#ifndef MODULE
+void tdfxfb_setup(char *options)
+{
+	char* this_opt;
+
+	if (!options || !*options)
+		return;
+
+	while ((this_opt = strsep(&options, ",")) != NULL) {
+		if (!*this_opt)
+			continue;
+		if(!strcmp(this_opt, "nopan")) {
+			nopan = 1;
+		} else if(!strcmp(this_opt, "nowrap")) {
+			nowrap = 1;
+		} else {
+			mode_option = this_opt;
+		}
+	}
+}
+#endif
+
 /**
  *      tdfxfb_remove - Device removal
  *
@@ -1321,7 +1340,7 @@ static void __devexit tdfxfb_remove(stru
 	framebuffer_release(info);
 }
 
-int __init tdfxfb_init(void)
+static int __init tdfxfb_init(void)
 {
 #ifndef MODULE
 	char *option = NULL;
@@ -1345,27 +1364,3 @@ MODULE_LICENSE("GPL");
  
 module_init(tdfxfb_init);
 module_exit(tdfxfb_exit);
-
-
-#ifndef MODULE
-void tdfxfb_setup(char *options)
-{ 
-	char* this_opt;
-
-	if (!options || !*options)
-		return;
-
-	while ((this_opt = strsep(&options, ",")) != NULL) {	
-		if (!*this_opt)
-			continue;
-		if(!strcmp(this_opt, "nopan")) {
-			nopan = 1;
-		} else if(!strcmp(this_opt, "nowrap")) {
-			nowrap = 1;
-		} else {
-			mode_option = this_opt;
-		}
-	} 
-}
-#endif
-
diff -puN drivers/video/vesafb.c~fbdev-cleanups-in-driver-video drivers/video/vesafb.c
--- 25/drivers/video/vesafb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/vesafb.c	Sun Mar  6 17:18:11 2005
@@ -185,7 +185,7 @@ static struct fb_ops vesafb_ops = {
 	.fb_cursor	= soft_cursor,
 };
 
-int __init vesafb_setup(char *options)
+static int __init vesafb_setup(char *options)
 {
 	char *this_opt;
 	
@@ -434,7 +434,7 @@ static struct platform_device vesafb_dev
 	.name	= "vesafb",
 };
 
-int __init vesafb_init(void)
+static int __init vesafb_init(void)
 {
 	int ret;
 	char *option = NULL;
@@ -453,12 +453,4 @@ int __init vesafb_init(void)
 }
 module_init(vesafb_init);
 
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
-
 MODULE_LICENSE("GPL");
diff -puN drivers/video/vfb.c~fbdev-cleanups-in-driver-video drivers/video/vfb.c
--- 25/drivers/video/vfb.c~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/drivers/video/vfb.c	Sun Mar  6 17:18:11 2005
@@ -72,12 +72,6 @@ static struct fb_fix_screeninfo vfb_fix 
 static int vfb_enable __initdata = 0;	/* disabled by default */
 module_param(vfb_enable, bool, 0);
 
-    /*
-     *  Interface used by the world
-     */
-int vfb_init(void);
-int vfb_setup(char *);
-
 static int vfb_check_var(struct fb_var_screeninfo *var,
 			 struct fb_info *info);
 static int vfb_set_par(struct fb_info *info);
@@ -379,7 +373,8 @@ static int vfb_mmap(struct fb_info *info
 	return -EINVAL;
 }
 
-int __init vfb_setup(char *options)
+#ifndef MODULE
+static int __init vfb_setup(char *options)
 {
 	char *this_opt;
 
@@ -396,6 +391,7 @@ int __init vfb_setup(char *options)
 	}
 	return 1;
 }
+#endif  /*  MODULE  */
 
     /*
      *  Initialisation
@@ -492,7 +488,7 @@ static struct platform_device vfb_device
 	}
 };
 
-int __init vfb_init(void)
+static int __init vfb_init(void)
 {
 	int ret = 0;
 
diff -puN include/linux/fb.h~fbdev-cleanups-in-driver-video include/linux/fb.h
--- 25/include/linux/fb.h~fbdev-cleanups-in-driver-video	Sun Mar  6 17:18:11 2005
+++ 25-akpm/include/linux/fb.h	Sun Mar  6 17:18:11 2005
@@ -864,10 +864,7 @@ extern int fb_get_mode(int flags, u32 va
 extern int fb_validate_mode(const struct fb_var_screeninfo *var,
 			    struct fb_info *info);
 extern int fb_parse_edid(unsigned char *edid, struct fb_var_screeninfo *var);
-extern int fb_get_monitor_limits(unsigned char *edid, struct fb_monspecs *specs);
 extern void fb_edid_to_monspecs(unsigned char *edid, struct fb_monspecs *specs);
-extern int fb_get_monitor_limits(unsigned char *edid, struct fb_monspecs *specs);
-extern struct fb_videomode *fb_create_modedb(unsigned char *edid, int *dbsize);
 extern void fb_destroy_modedb(struct fb_videomode *modedb);
 
 /* drivers/video/modedb.c */
_