Skip to content

Commit

Permalink
[PATCH] fbdev: Make BIOS EDID reading configurable
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Antonino A. Daplas authored and Linus Torvalds committed Mar 27, 2006
1 parent f95ec3c commit 59153f7
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
2 changes: 2 additions & 0 deletions arch/i386/boot/video.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -1954,6 +1955,7 @@ store_edid:
popw %bx
popw %ax
popw %es
#endif
ret

# VIDEO_SELECT-only variables
Expand Down
16 changes: 16 additions & 0 deletions drivers/video/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions drivers/video/fbmon.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>

/*
Expand Down Expand Up @@ -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);

0 comments on commit 59153f7

Please sign in to comment.