[PATCH] fbdev: Make BIOS EDID reading configurable
authorAntonino A. Daplas <adaplas@gmail.com>
Mon, 27 Mar 2006 09:17:29 +0000 (01:17 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 27 Mar 2006 16:44:55 +0000 (08:44 -0800)
DDC reading via the Video BIOS may take several tens of seconds with some
combination of display cards and monitors.

Make this option configurable.  It defaults to `y' to minimise disruption.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/boot/video.S
drivers/video/Kconfig
drivers/video/fbmon.c

index 2ac40c8244c47145fb1d7feae7c42b9fe03bf1d8..0000a26745372abd273e6ebba7c040b0946948bc 100644 (file)
@@ -1924,6 +1924,7 @@ skip10:   movb    %ah, %al
        ret
 
 store_edid:
+#ifdef CONFIG_FB_FIRMWARE_EDID
        pushw   %es                             # just save all registers
        pushw   %ax
        pushw   %bx
@@ -1954,6 +1955,7 @@ store_edid:
        popw    %bx
        popw    %ax
        popw    %es
+#endif
        ret
 
 # VIDEO_SELECT-only variables
index 3a890610ebe7635f327a3f61118bc5ab5754469a..22e9d696fdd2130d732709402885e6f49b7dc156 100644 (file)
@@ -70,6 +70,22 @@ config FB_MACMODES
        depends on FB
        default n
 
+config FB_FIRMWARE_EDID
+       bool "Enable firmware EDID"
+       depends on FB
+       default y
+       ---help---
+         This enables access to the EDID transferred from the firmware.
+        On the i386, this is from the Video BIOS. Enable this if DDC/I2C
+        transfers do not work for your driver and if you are using
+        nvidiafb, i810fb or savagefb.
+
+        In general, choosing Y for this option is safe.  If you
+        experience extremely long delays while booting before you get
+        something on your display, try setting this to N.  Matrox cards in
+        combination with certain motherboards and monitors are known to
+        suffer from this problem.
+
 config FB_MODE_HELPERS
         bool "Enable Video Mode Handling Helpers"
         depends on FB
index 7c74e7325d95a1830ef0d36aac0680462ff62fac..53beeb4a99981af1a2079201e7fc9c2f26fe27e4 100644 (file)
@@ -1281,7 +1281,7 @@ int fb_validate_mode(const struct fb_var_screeninfo *var, struct fb_info *info)
                -EINVAL : 0;
 }
 
-#if defined(__i386__)
+#if defined(CONFIG_FB_FIRMWARE_EDID) && defined(__i386__)
 #include <linux/pci.h>
 
 /*
@@ -1311,11 +1311,11 @@ const unsigned char *fb_firmware_edid(struct device *device)
 {
        return NULL;
 }
-#endif /* _i386_ */
+#endif
+EXPORT_SYMBOL(fb_firmware_edid);
 
 EXPORT_SYMBOL(fb_parse_edid);
 EXPORT_SYMBOL(fb_edid_to_monspecs);
-EXPORT_SYMBOL(fb_firmware_edid);
 EXPORT_SYMBOL(fb_get_mode);
 EXPORT_SYMBOL(fb_validate_mode);
 EXPORT_SYMBOL(fb_destroy_modedb);