* [PATCH 4/5] Video Mode Handling - Reduce memory footprint of fbdev
@ 2004-08-09 1:46 Antonino A. Daplas
2004-08-09 15:08 ` Kronos
0 siblings, 1 reply; 2+ messages in thread
From: Antonino A. Daplas @ 2004-08-09 1:46 UTC (permalink / raw)
To: Linux Fbdev development list; +Cc: Andrew Morton
Hi,
This patch is entirely optional. Its only advantage is reduction of kernel
size by ~5-6K.
a. Mark modedb as __init.
b. Add CONFIG_FB_MODE_HELPERS. Unselecting this will uninclude the code for
Generalized Timing Formula and the EDID parser on kernel compilation. These
are used only by radeonfb, rivafb and i810fb.
The diff is against 2.6.8-rc3-mm1 but should apply cleanly to 2.6.8-rc3-mm2
as well.
Tony
Signed-off-by: Antonino Daplas <adaplas@pol.net>
---
Kconfig | 11 +++++++++++
fbmon.c | 31 +++++++++++++++++++++++++++++++
modedb.c | 8 +++++---
3 files changed, 47 insertions(+), 3 deletions(-)
diff -uprN linux-2.6.8-rc3-mm1-orig/drivers/video/fbmon.c linux-2.6.8-rc3-mm1/drivers/video/fbmon.c
--- linux-2.6.8-rc3-mm1-orig/drivers/video/fbmon.c 2004-08-08 22:56:32.990329720 +0800
+++ linux-2.6.8-rc3-mm1/drivers/video/fbmon.c 2004-08-08 22:55:15.680082664 +0800
@@ -51,6 +51,7 @@
#define FBMON_FIX_HEADER 1
+#ifdef CONFIG_FB_MODE_HELPERS
struct broken_edid {
u8 manufacturer[4];
u32 model;
@@ -1156,6 +1157,36 @@ int fb_get_mode(int flags, u32 val, stru
return 0;
}
+#else
+int fb_parse_edid(unsigned char *edid, struct fb_var_screeninfo *var)
+{
+ return 1;
+}
+void fb_edid_to_monspecs(unsigned char *edid, struct fb_monspecs *specs)
+{
+ specs = NULL;
+}
+char *get_EDID_from_firmware(struct device *dev)
+{
+ 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)
+{
+ return -EINVAL;
+}
+#endif /* CONFIG_FB_MODE_HELPERS */
/*
* fb_validate_mode - validates var against monitor capabilities
diff -uprN linux-2.6.8-rc3-mm1-orig/drivers/video/Kconfig linux-2.6.8-rc3-mm1/drivers/video/Kconfig
--- linux-2.6.8-rc3-mm1-orig/drivers/video/Kconfig 2004-08-08 22:55:37.046834424 +0800
+++ linux-2.6.8-rc3-mm1/drivers/video/Kconfig 2004-08-08 22:55:09.143076440 +0800
@@ -38,6 +38,17 @@ config FB
(e.g. an accelerated X server) and that are not frame buffer
device-aware may cause unexpected results. If unsure, say N.
+config FB_MODE_HELPERS
+ bool "Enable Video Mode Handling Helpers"
+ depends on FB
+ default y
+ ---help---
+ This enables functions for handling video modes using the
+ Generalized Timing Formula and the EDID parser. A few drivers rely
+ on this feature such as the radeonfb, rivafb, and the i810fb. If
+ your driver does not take advantage of this feature, choosing Y will
+ just increase the kernel size by about 5K.
+
config FB_CIRRUS
tristate "Cirrus Logic support"
depends on FB && (ZORRO || PCI)
diff -uprN linux-2.6.8-rc3-mm1-orig/drivers/video/modedb.c linux-2.6.8-rc3-mm1/drivers/video/modedb.c
--- linux-2.6.8-rc3-mm1-orig/drivers/video/modedb.c 2004-08-08 22:03:39.000000000 +0800
+++ linux-2.6.8-rc3-mm1/drivers/video/modedb.c 2004-08-08 22:55:20.635329352 +0800
@@ -39,7 +39,7 @@ const char *global_mode_option = NULL;
#define DEFAULT_MODEDB_INDEX 0
-static const struct fb_videomode modedb[] = {
+static const __init struct fb_videomode modedb[] = {
{
/* 640x400 @ 70 Hz, 31.5 kHz hsync */
NULL, 70, 640, 400, 39721, 40, 24, 39, 9, 96, 2,
@@ -251,6 +251,7 @@ static const struct fb_videomode modedb[
},
};
+#ifdef CONFIG_FB_MODE_HELPERS
const struct fb_videomode vesa_modes[] = {
/* 0 640x350-85 VESA */
{ NULL, 85, 640, 350, 31746, 96, 32, 60, 32, 64, 3,
@@ -374,6 +375,8 @@ const struct fb_videomode vesa_modes[] =
{ NULL, 60, 1920, 1440, 3367, 352, 144, 56, 1, 224, 3,
FB_SYNC_VERT_HIGH_ACT, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
};
+EXPORT_SYMBOL(vesa_modes);
+#endif /* CONFIG_FB_MODE_HELPERS */
static int my_atoi(const char *name)
{
@@ -404,7 +407,7 @@ static int my_atoi(const char *name)
*/
int fb_try_mode(struct fb_var_screeninfo *var, struct fb_info *info,
- const struct fb_videomode *mode, unsigned int bpp)
+ const struct fb_videomode *mode, unsigned int bpp)
{
int err = 0;
@@ -826,5 +829,4 @@ EXPORT_SYMBOL(fb_destroy_modelist);
EXPORT_SYMBOL(fb_match_mode);
EXPORT_SYMBOL(fb_find_best_mode);
EXPORT_SYMBOL(fb_videomode_to_modelist);
-EXPORT_SYMBOL(vesa_modes);
EXPORT_SYMBOL(fb_find_mode);
-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 4/5] Video Mode Handling - Reduce memory footprint of fbdev
2004-08-09 1:46 [PATCH 4/5] Video Mode Handling - Reduce memory footprint of fbdev Antonino A. Daplas
@ 2004-08-09 15:08 ` Kronos
0 siblings, 0 replies; 2+ messages in thread
From: Kronos @ 2004-08-09 15:08 UTC (permalink / raw)
To: adaplas; +Cc: Linux Fbdev development list
Il Mon, Aug 09, 2004 at 09:46:30AM +0800, Antonino A. Daplas ha scritto:
> b. Add CONFIG_FB_MODE_HELPERS. Unselecting this will uninclude the code for
> Generalized Timing Formula and the EDID parser on kernel compilation. These
> are used only by radeonfb, rivafb and i810fb.
Then make radeonfb, rivafb and i810fb select CONFIG_FB_MODE_HELPERS:
--- a/drivers/video/Kconfig 2004-08-09 17:03:58.000000000 +0200
+++ b/drivers/video/Kconfig 2004-08-09 17:04:56.000000000 +0200
@@ -437,6 +437,7 @@
depends on FB && PCI
select I2C_ALGOBIT if FB_RIVA_I2C
select I2C if FB_RIVA_I2C
+ select FB_MODE_HELPERS
help
This driver supports graphics boards with the nVidia Riva/Geforce
chips.
@@ -469,6 +470,7 @@
config FB_I810
tristate "Intel 810/815 support (EXPERIMENTAL)"
depends on FB && AGP && AGP_INTEL && EXPERIMENTAL && PCI
+ select FB_MODE_HELPERS
help
This driver supports the on-board graphics built in to the Intel 810
and 815 chipsets. Say Y if you have and plan to use such a board.
@@ -672,6 +674,7 @@
depends on FB && PCI
select I2C_ALGOBIT if FB_RADEON_I2C
select I2C if FB_RADEON_I2C
+ select FB_MODE_HELPERS
help
Choose this option if you want to use an ATI Radeon graphics card as
a framebuffer device. There are both PCI and AGP versions. You
Luca
--
Home: http://kronoz.cjb.net
Do, or do not. There is no try.
-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-08-09 15:08 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-09 1:46 [PATCH 4/5] Video Mode Handling - Reduce memory footprint of fbdev Antonino A. Daplas
2004-08-09 15:08 ` Kronos
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).