Commit 59153f7d authored by Antonino A. Daplas's avatar Antonino A. Daplas Committed by Linus Torvalds
Browse files

[PATCH] fbdev: Make BIOS EDID reading configurable



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: default avatarAntonino Daplas <adaplas@pol.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f95ec3c6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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
+16 −0
Original line number Diff line number Diff line
@@ -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
+3 −3
Original line number Diff line number Diff line
@@ -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);