*
*/
+#include <linux/config.h> /* for CONFIG_VIDEO_* */
+
/* Enable autodetection of SVGA adapters and modes. */
#undef CONFIG_VIDEO_SVGA
#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
call mode_set # Set the mode
jc vid1
-#if 0
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
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
ret
store_edid:
-#ifdef CONFIG_FIRMWARE_EDID
pushw %es # just save all registers
pushw %ax
pushw %bx
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 $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