Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 30294
b: refs/heads/master
c: ba70710
h: refs/heads/master
v: v3
  • Loading branch information
Antonino A. Daplas authored and Linus Torvalds committed Jun 26, 2006
1 parent 8e83b5e commit 668bc90
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 026fbe16c29848648599df9967b98250a6b86916
refs/heads/master: ba70710e59c701734aad524bc441b3400700e94b
19 changes: 18 additions & 1 deletion trunk/arch/i386/boot/video.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -1947,13 +1947,30 @@ 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
movw $0x00, %dx
movw $0x140, %di
int $0x10

no_edid:
popw %di # restore all registers
popw %dx
popw %cx
Expand Down
19 changes: 19 additions & 0 deletions trunk/arch/x86_64/boot/video.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -1946,19 +1947,37 @@ 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
movw $0x01, %dx
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
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/x86_64/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
31 changes: 15 additions & 16 deletions trunk/drivers/video/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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---
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/video/fbmon.c
Original file line number Diff line number Diff line change
Expand Up @@ -1301,7 +1301,7 @@ int fb_validate_mode(const struct fb_var_screeninfo *var, struct fb_info *info)
-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
Expand Down

0 comments on commit 668bc90

Please sign in to comment.