git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
i386
/
boot
/
video.S
diff --git
a/arch/i386/boot/video.S
b/arch/i386/boot/video.S
index
0587477
..
668b996
100644
(file)
--- a/
arch/i386/boot/video.S
+++ b/
arch/i386/boot/video.S
@@
-97,6
+97,7
@@
#define PARAM_VESAPM_OFF 0x30
#define PARAM_LFB_PAGES 0x32
#define PARAM_VESA_ATTRIB 0x34
#define PARAM_VESAPM_OFF 0x30
#define PARAM_LFB_PAGES 0x32
#define PARAM_VESA_ATTRIB 0x34
+#define PARAM_CAPABILITIES 0x36
/* Define DO_STORE according to CONFIG_VIDEO_RETAIN */
#ifdef CONFIG_VIDEO_RETAIN
/* Define DO_STORE according to CONFIG_VIDEO_RETAIN */
#ifdef CONFIG_VIDEO_RETAIN
@@
-126,8
+127,12
@@
video: pushw %ds # We use different segments
call mode_set # Set the mode
jc vid1
call mode_set # Set the mode
jc vid1
+#if 0
leaw badmdt, %si # Invalid mode ID
call prtstr
leaw badmdt, %si # Invalid mode ID
call prtstr
+#else
+ jmp vid1
+#endif /* CONFIG_VIDEO_IGNORE_BAD_MODE */
vid2: call mode_menu
vid1:
#ifdef CONFIG_VIDEO_RETAIN
vid2: call mode_menu
vid1:
#ifdef CONFIG_VIDEO_RETAIN
@@
-233,6
+238,10
@@
mopar_gr:
movw 18(%di), %ax
movl %eax, %fs:(PARAM_LFB_SIZE)
movw 18(%di), %ax
movl %eax, %fs:(PARAM_LFB_SIZE)
+# store mode capabilities
+ movl 10(%di), %eax
+ movl %eax, %fs:(PARAM_CAPABILITIES)
+
# switching the DAC to 8-bit is for <= 8 bpp only
movw %fs:(PARAM_LFB_DEPTH), %ax
cmpw $8, %ax
# switching the DAC to 8-bit is for <= 8 bpp only
movw %fs:(PARAM_LFB_DEPTH), %ax
cmpw $8, %ax
@@
-1924,6
+1933,7
@@
skip10: movb %ah, %al
ret
store_edid:
ret
store_edid:
+#ifdef CONFIG_FB_FIRMWARE_EDID
pushw %es # just save all registers
pushw %ax
pushw %bx
pushw %es # just save all registers
pushw %ax
pushw %bx
@@
-1942,18
+1952,29
@@
store_edid:
stosl
movw $0x4f15, %ax # do VBE/DDC
stosl
movw $0x4f15, %ax # do VBE/DDC
- movw $0x0
1, %bx
+ movw $0x0
0, %bx # INSTALLATION CHECK / CAPABILITIES
movw $0x00, %cx
movw $0x00, %cx
- movw $0x01, %dx
+ movw $0x00, %dx
+ movw $0x140, %di
+ int $0x10
+ cmpb $0x01, %ah
+ je no_edid
+
+ movw $0x4f15, %ax # do VBE/DDC
+ movw $0x01, %bx # READ_EDID
+ movw $0x00, %cx
+ movw $0x00, %dx
movw $0x140, %di
int $0x10
movw $0x140, %di
int $0x10
+no_edid:
popw %di # restore all registers
popw %dx
popw %cx
popw %bx
popw %ax
popw %es
popw %di # restore all registers
popw %dx
popw %cx
popw %bx
popw %ax
popw %es
+#endif
ret
# VIDEO_SELECT-only variables
ret
# VIDEO_SELECT-only variables