Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / arch / i386 / boot / video.S
index 668b996..5846d69 100644 (file)
@@ -11,8 +11,6 @@
  *
  */
 
-#include <linux/config.h> /* for CONFIG_VIDEO_* */
-
 /* Enable autodetection of SVGA adapters and modes. */
 #undef CONFIG_VIDEO_SVGA
 
@@ -1933,7 +1931,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
@@ -1951,19 +1949,26 @@ store_edid:
        rep
        stosl
 
-       movw    $0x4f15, %ax                    # do VBE/DDC
-       movw    $0x00, %bx                      # INSTALLATION CHECK / CAPABILITIES
-       movw    $0x00, %cx
-       movw    $0x00, %dx
-       movw    $0x140, %di
-       int             $0x10
-       cmpb    $0x01, %ah
-       je              no_edid
+       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                      # READ_EDID
+       movw    $0x01, %bx
        movw    $0x00, %cx
-       movw    $0x00, %dx
+       movw    $0x00, %dx
        movw    $0x140, %di
        int     $0x10