提交 59153f7d 编写于 作者: A Antonino A. Daplas 提交者: Linus Torvalds

[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: NAntonino Daplas <adaplas@pol.net>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 f95ec3c6
...@@ -1924,6 +1924,7 @@ skip10: movb %ah, %al ...@@ -1924,6 +1924,7 @@ skip10: movb %ah, %al
ret ret
store_edid: store_edid:
#ifdef CONFIG_FB_FIRMWARE_EDID
pushw %es # just save all registers pushw %es # just save all registers
pushw %ax pushw %ax
pushw %bx pushw %bx
...@@ -1954,6 +1955,7 @@ store_edid: ...@@ -1954,6 +1955,7 @@ store_edid:
popw %bx popw %bx
popw %ax popw %ax
popw %es popw %es
#endif
ret ret
# VIDEO_SELECT-only variables # VIDEO_SELECT-only variables
......
...@@ -70,6 +70,22 @@ config FB_MACMODES ...@@ -70,6 +70,22 @@ config FB_MACMODES
depends on FB depends on FB
default n 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 config FB_MODE_HELPERS
bool "Enable Video Mode Handling Helpers" bool "Enable Video Mode Handling Helpers"
depends on FB depends on FB
......
...@@ -1281,7 +1281,7 @@ int fb_validate_mode(const struct fb_var_screeninfo *var, struct fb_info *info) ...@@ -1281,7 +1281,7 @@ int fb_validate_mode(const struct fb_var_screeninfo *var, struct fb_info *info)
-EINVAL : 0; -EINVAL : 0;
} }
#if defined(__i386__) #if defined(CONFIG_FB_FIRMWARE_EDID) && defined(__i386__)
#include <linux/pci.h> #include <linux/pci.h>
/* /*
...@@ -1311,11 +1311,11 @@ const unsigned char *fb_firmware_edid(struct device *device) ...@@ -1311,11 +1311,11 @@ const unsigned char *fb_firmware_edid(struct device *device)
{ {
return NULL; return NULL;
} }
#endif /* _i386_ */ #endif
EXPORT_SYMBOL(fb_firmware_edid);
EXPORT_SYMBOL(fb_parse_edid); EXPORT_SYMBOL(fb_parse_edid);
EXPORT_SYMBOL(fb_edid_to_monspecs); EXPORT_SYMBOL(fb_edid_to_monspecs);
EXPORT_SYMBOL(fb_firmware_edid);
EXPORT_SYMBOL(fb_get_mode); EXPORT_SYMBOL(fb_get_mode);
EXPORT_SYMBOL(fb_validate_mode); EXPORT_SYMBOL(fb_validate_mode);
EXPORT_SYMBOL(fb_destroy_modedb); EXPORT_SYMBOL(fb_destroy_modedb);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册