diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2006-03-27 04:17:29 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-27 11:44:55 -0500 |
commit | 59153f7d7effdb5b3c81eb6d03914a866157b319 (patch) | |
tree | 59241e05d5fc0ba01070624c6c559004fe1b686a | |
parent | f95ec3c6df271ae4e6290cd6b95c18a009c76dc9 (diff) |
[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: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/i386/boot/video.S | 2 | ||||
-rw-r--r-- | drivers/video/Kconfig | 16 | ||||
-rw-r--r-- | drivers/video/fbmon.c | 6 |
3 files changed, 21 insertions, 3 deletions
diff --git a/arch/i386/boot/video.S b/arch/i386/boot/video.S index 2ac40c8244c4..0000a2674537 100644 --- a/arch/i386/boot/video.S +++ b/arch/i386/boot/video.S | |||
@@ -1924,6 +1924,7 @@ skip10: movb %ah, %al | |||
1924 | ret | 1924 | ret |
1925 | 1925 | ||
1926 | store_edid: | 1926 | store_edid: |
1927 | #ifdef CONFIG_FB_FIRMWARE_EDID | ||
1927 | pushw %es # just save all registers | 1928 | pushw %es # just save all registers |
1928 | pushw %ax | 1929 | pushw %ax |
1929 | pushw %bx | 1930 | pushw %bx |
@@ -1954,6 +1955,7 @@ store_edid: | |||
1954 | popw %bx | 1955 | popw %bx |
1955 | popw %ax | 1956 | popw %ax |
1956 | popw %es | 1957 | popw %es |
1958 | #endif | ||
1957 | ret | 1959 | ret |
1958 | 1960 | ||
1959 | # VIDEO_SELECT-only variables | 1961 | # VIDEO_SELECT-only variables |
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 3a890610ebe7..22e9d696fdd2 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig | |||
@@ -70,6 +70,22 @@ config FB_MACMODES | |||
70 | depends on FB | 70 | depends on FB |
71 | default n | 71 | default n |
72 | 72 | ||
73 | config FB_FIRMWARE_EDID | ||
74 | bool "Enable firmware EDID" | ||
75 | depends on FB | ||
76 | default y | ||
77 | ---help--- | ||
78 | This enables access to the EDID transferred from the firmware. | ||
79 | On the i386, this is from the Video BIOS. Enable this if DDC/I2C | ||
80 | transfers do not work for your driver and if you are using | ||
81 | nvidiafb, i810fb or savagefb. | ||
82 | |||
83 | In general, choosing Y for this option is safe. If you | ||
84 | experience extremely long delays while booting before you get | ||
85 | something on your display, try setting this to N. Matrox cards in | ||
86 | combination with certain motherboards and monitors are known to | ||
87 | suffer from this problem. | ||
88 | |||
73 | config FB_MODE_HELPERS | 89 | config FB_MODE_HELPERS |
74 | bool "Enable Video Mode Handling Helpers" | 90 | bool "Enable Video Mode Handling Helpers" |
75 | depends on FB | 91 | depends on FB |
diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c index 7c74e7325d95..53beeb4a9998 100644 --- a/drivers/video/fbmon.c +++ b/drivers/video/fbmon.c | |||
@@ -1281,7 +1281,7 @@ int fb_validate_mode(const struct fb_var_screeninfo *var, struct fb_info *info) | |||
1281 | -EINVAL : 0; | 1281 | -EINVAL : 0; |
1282 | } | 1282 | } |
1283 | 1283 | ||
1284 | #if defined(__i386__) | 1284 | #if defined(CONFIG_FB_FIRMWARE_EDID) && defined(__i386__) |
1285 | #include <linux/pci.h> | 1285 | #include <linux/pci.h> |
1286 | 1286 | ||
1287 | /* | 1287 | /* |
@@ -1311,11 +1311,11 @@ const unsigned char *fb_firmware_edid(struct device *device) | |||
1311 | { | 1311 | { |
1312 | return NULL; | 1312 | return NULL; |
1313 | } | 1313 | } |
1314 | #endif /* _i386_ */ | 1314 | #endif |
1315 | EXPORT_SYMBOL(fb_firmware_edid); | ||
1315 | 1316 | ||
1316 | EXPORT_SYMBOL(fb_parse_edid); | 1317 | EXPORT_SYMBOL(fb_parse_edid); |
1317 | EXPORT_SYMBOL(fb_edid_to_monspecs); | 1318 | EXPORT_SYMBOL(fb_edid_to_monspecs); |
1318 | EXPORT_SYMBOL(fb_firmware_edid); | ||
1319 | EXPORT_SYMBOL(fb_get_mode); | 1319 | EXPORT_SYMBOL(fb_get_mode); |
1320 | EXPORT_SYMBOL(fb_validate_mode); | 1320 | EXPORT_SYMBOL(fb_validate_mode); |
1321 | EXPORT_SYMBOL(fb_destroy_modedb); | 1321 | EXPORT_SYMBOL(fb_destroy_modedb); |