The patch titled fbdev: Firmware EDID fixes has been removed from the -mm tree. Its filename is fbdev-firmware-edid-fixes.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: fbdev: Firmware EDID fixes From: "Antonino A. Daplas" <adaplas@xxxxxxxxx> - make firmware edid independent from framebuffer (No need to choose framebuffer just to disable this option - enable this option in X86_64 - check if VBE/DDC function is implemented before calling actual function Signed-off-by: Antonino Daplas <adaplas@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/i386/boot/video.S | 19 ++++++++++++++++++- arch/x86_64/boot/video.S | 19 +++++++++++++++++++ arch/x86_64/kernel/setup.c | 1 + drivers/video/Kconfig | 31 +++++++++++++++---------------- drivers/video/fbmon.c | 2 +- 5 files changed, 54 insertions(+), 18 deletions(-) diff -puN arch/i386/boot/video.S~fbdev-firmware-edid-fixes arch/i386/boot/video.S --- a/arch/i386/boot/video.S~fbdev-firmware-edid-fixes +++ a/arch/i386/boot/video.S @@ -1929,7 +1929,7 @@ skip10: movb %ah, %al ret store_edid: -#ifdef CONFIG_FB_FIRMWARE_EDID +#ifdef CONFIG_FIRMWARE_EDID pushw %es # just save all registers pushw %ax pushw %bx @@ -1947,6 +1947,22 @@ store_edid: rep stosl + pushw %es # save ES + xorw %di, %di # Report Capability + pushw %di + popw %es # ES:DI must be 0:0 + movw $0x4f15, %ax + xorw %bx, %bx + xorw %cx, %cx + int $0x10 + popw %es # restore ES + + cmpb $0x00, %ah # call successful + jne no_edid + + cmpb $0x4f, %al # function supported + jne no_edid + movw $0x4f15, %ax # do VBE/DDC movw $0x01, %bx movw $0x00, %cx @@ -1954,6 +1970,7 @@ store_edid: movw $0x140, %di int $0x10 +no_edid: popw %di # restore all registers popw %dx popw %cx diff -puN arch/x86_64/boot/video.S~fbdev-firmware-edid-fixes arch/x86_64/boot/video.S --- a/arch/x86_64/boot/video.S~fbdev-firmware-edid-fixes +++ a/arch/x86_64/boot/video.S @@ -1929,6 +1929,7 @@ skip10: movb %ah, %al ret store_edid: +#ifdef CONFIG_FIRMWARE_EDID pushw %es # just save all registers pushw %ax pushw %bx @@ -1946,6 +1947,22 @@ store_edid: rep stosl + pushw %es # save ES + xorw %di, %di # Report Capability + pushw %di + popw %es # ES:DI must be 0:0 + movw $0x4f15, %ax + xorw %bx, %bx + xorw %cx, %cx + int $0x10 + popw %es # restore ES + + cmpb $0x00, %ah # call successful + jne no_edid + + cmpb $0x4f, %al # function supported + jne no_edid + movw $0x4f15, %ax # do VBE/DDC movw $0x01, %bx movw $0x00, %cx @@ -1953,12 +1970,14 @@ store_edid: movw $0x140, %di int $0x10 +no_edid: popw %di # restore all registers popw %dx popw %cx popw %bx popw %ax popw %es +#endif ret # VIDEO_SELECT-only variables diff -puN arch/x86_64/kernel/setup.c~fbdev-firmware-edid-fixes arch/x86_64/kernel/setup.c --- a/arch/x86_64/kernel/setup.c~fbdev-firmware-edid-fixes +++ a/arch/x86_64/kernel/setup.c @@ -109,6 +109,7 @@ struct sys_desc_table_struct { }; struct edid_info edid_info; +EXPORT_SYMBOL_GPL(edid_info); struct e820map e820; extern int root_mountflags; diff -puN drivers/video/fbmon.c~fbdev-firmware-edid-fixes drivers/video/fbmon.c --- a/drivers/video/fbmon.c~fbdev-firmware-edid-fixes +++ a/drivers/video/fbmon.c @@ -1301,7 +1301,7 @@ int fb_validate_mode(const struct fb_var -EINVAL : 0; } -#if defined(CONFIG_FB_FIRMWARE_EDID) && defined(__i386__) +#if defined(CONFIG_FIRMWARE_EDID) && defined(CONFIG_X86) /* * We need to ensure that the EDID block is only returned for diff -puN drivers/video/Kconfig~fbdev-firmware-edid-fixes drivers/video/Kconfig --- a/drivers/video/Kconfig~fbdev-firmware-edid-fixes +++ a/drivers/video/Kconfig @@ -4,6 +4,21 @@ menu "Graphics support" +config FIRMWARE_EDID + bool "Enable firmware EDID" + 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 tristate "Support for frame buffer devices" ---help--- @@ -70,22 +85,6 @@ 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_BACKLIGHT bool depends on FB _ Patches currently in -mm which might be from adaplas@xxxxxxxxx are origin.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html