Skip to contentSkip to conversation

frame buffer EDID always included (was [FBDEV UPDATE] Newer patch.)

PATCH New Holger Schurig 1 participant 1 message Oct 23, 2003 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 frame buffer EDID always included (was [FBDEV UPDATE] Newer patch.)

Quoted 2 lines · James Simmons

This patch is a few fixes and I added back in functionality for switching the video mode for fbcon via fbset again.

Hi James !

I'm using Linux on an embedded device with the PXA 250 processor. Those embedded devices (Sharp Zaurus, Compaq IPaq, M&N Ramses, whatever) usually use an LCD display, the CPU-built-in LCD controller and some fixed LCD with 320x240 or so.

So, no one would ever use fbset to change resolutions. And no monitor would answer EDID requests. On Linux 2.6-test I found that the framebuffer code includes lots of display settings and the EDID query code. Does this patch look fine to you? Or did I miss something important for other architectures?

Quoted 1 line

From Holger Schurig: some embedded devices don't drive a normal CRT, but an

digitally connected LCD panel. In this case, we don't need the EDID code and no mode line database.

This disables the feature if CONFIG_PXA_FB or CONFIG_SA1100_FB is defined.

#
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
#

drivers/video/Kconfig renamed from drivers/video/Kconfig~small-nomodedb +8 -0
@@ -38,6 +38,14 @@
 	  (e.g. an accelerated X server) and that are not frame buffer
 	  device-aware may cause unexpected results. If unsure, say N.
 
+config FB_MODES
+	bool
+	default y if FB && (!(FB_PXA || FB_SA1110))
+	---help---
+	  Some embedded devices don't drive a normal CRT, but an digitally
+	  connected LCD panel. In this case, we don't need the EDID code and
+	  no mode line database.
+
 config FB_CIRRUS
 	tristate "Cirrus Logic support"
 	depends on FB && (AMIGA || PCI) && BROKEN
drivers/video/Makefile renamed from drivers/video/Makefile~small-nomodedb +2 -1
@@ -7,7 +7,8 @@
 obj-$(CONFIG_VT)		  += console/
 obj-$(CONFIG_LOGO)		  += logo/
 
-obj-$(CONFIG_FB)                  += fbmem.o fbmon.o fbcmap.o modedb.o softcursor.o
+obj-$(CONFIG_FB)                  += fbmem.o fbcmap.o softcursor.o
+obj-$(CONFIG_FB_MODES)              += fbmon.o modedb.o
 # Only include macmodes.o if we have FB support and are PPC
 ifeq ($(CONFIG_FB),y)
 obj-$(CONFIG_PPC)                 += macmodes.o
drivers/video/fbmem.c renamed from drivers/video/fbmem.c~small-nomodedb +4 -0
@@ -385,7 +385,9 @@
 #define NUM_FB_DRIVERS	(sizeof(fb_drivers)/sizeof(*fb_drivers))
 #define FBPIXMAPSIZE	8192
 
+#ifdef CONFIG_FB_MODES
 extern const char *global_mode_option;
+#endif
 
 static initcall_t pref_init_funcs[FB_MAX];
 static int num_pref_init_funcs __initdata = 0;
@@ -1365,7 +1367,9 @@
 	 * If we get here no fb was specified.
 	 * We consider the argument to be a global video mode option.
 	 */
+#ifdef CONFIG_FB_MODES
 	global_mode_option = options;
+#endif
 	return 0;
 }