[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] x86: Re-introduce VIDEO_CURRENT_MODE into video.S video-mode-setting



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1182262199 -3600
# Node ID 07688f8f53943cb51c965fa91923b1c4a3e87d0f
# Parent  8eaee9ef472f79af6a288a99c296dbc70510ba68
x86: Re-introduce VIDEO_CURRENT_MODE into video.S video-mode-setting
code, and make visible at the command line via 'vga=current'.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 docs/src/user.tex           |    1 +
 xen/arch/x86/boot/cmdline.S |   17 ++++++++++++++++-
 xen/arch/x86/boot/video.S   |    2 ++
 xen/arch/x86/boot/video.h   |    9 +++++----
 xen/drivers/video/vga.c     |    3 +++
 5 files changed, 27 insertions(+), 5 deletions(-)

diff -r 8eaee9ef472f -r 07688f8f5394 docs/src/user.tex
--- a/docs/src/user.tex Tue Jun 19 15:03:55 2007 +0100
+++ b/docs/src/user.tex Tue Jun 19 15:09:59 2007 +0100
@@ -3178,6 +3178,7 @@ editing \path{grub.conf}.
   \begin{description}
   \item[ ask ] Display a vga menu allowing manual selection of video
   mode.
+  \item[ current ] Use existing vga mode without modification.
   \item[ text-$<$mode$>$ ] Select text-mode resolution, where mode is
   one of 80x25, 80x28, 80x30, 80x34, 80x43, 80x50, 80x60.
   \item[ gfx-$<$mode$>$ ] Select VESA graphics mode
diff -r 8eaee9ef472f -r 07688f8f5394 xen/arch/x86/boot/cmdline.S
--- a/xen/arch/x86/boot/cmdline.S       Tue Jun 19 15:03:55 2007 +0100
+++ b/xen/arch/x86/boot/cmdline.S       Tue Jun 19 15:09:59 2007 +0100
@@ -297,7 +297,7 @@ 1:      lodsw
         call    .Lstr_prefix
         add     $8,%esp
         test    %eax,%eax
-        jnz     .Lcmdline_exit
+        jnz     .Lparse_vga_current
 
         /* We have 'vga=mode-<mode>'. */
         add     $5,%ebx
@@ -305,6 +305,19 @@ 1:      lodsw
         call    .Latoi
         add     $4,%esp
         mov     %ax,bootsym_phys(boot_vid_mode)
+        jmp     .Lcmdline_exit
+
+.Lparse_vga_current:
+        /* Check for 'vga=current'. */
+        push    %ebx
+        pushl   $sym_phys(.Lvga_current)
+        call    .Lstr_prefix
+        add     $8,%esp
+        test    %eax,%eax
+        jnz     .Lcmdline_exit
+
+        /* We have 'vga=current'. */
+        movw    $VIDEO_CURRENT_MODE,bootsym_phys(boot_vid_mode)
 
 .Lcmdline_exit:
         popa
@@ -328,6 +341,8 @@ 1:      lodsw
         .asciz  "gfx-"
 .Lvga_mode:
         .asciz  "mode-"
+.Lvga_current:
+        .asciz  "current"
 .Lno_rm_opt:
         .asciz  "no-real-mode"
 .Ledid_opt:
diff -r 8eaee9ef472f -r 07688f8f5394 xen/arch/x86/boot/video.S
--- a/xen/arch/x86/boot/video.S Tue Jun 19 15:03:55 2007 +0100
+++ b/xen/arch/x86/boot/video.S Tue Jun 19 15:09:59 2007 +0100
@@ -530,6 +530,7 @@ spec_inits:
         .word   bootsym(set_8pixel)
         .word   bootsym(set_80x43)
         .word   bootsym(set_80x28)
+        .word   bootsym(set_current)
         .word   bootsym(set_80x30)
         .word   bootsym(set_80x34)
         .word   bootsym(set_80x60)
@@ -575,6 +576,7 @@ set14:  movw    $0x1111, %ax            
         movb    $0x01, %ah              # Define cursor scan lines 11-12
         movw    $0x0b0c, %cx
         int     $0x10
+set_current:
         stc
         ret
 
diff -r 8eaee9ef472f -r 07688f8f5394 xen/arch/x86/boot/video.h
--- a/xen/arch/x86/boot/video.h Tue Jun 19 15:03:55 2007 +0100
+++ b/xen/arch/x86/boot/video.h Tue Jun 19 15:09:59 2007 +0100
@@ -16,10 +16,11 @@
 #define VIDEO_80x50         0x0f01
 #define VIDEO_80x43         0x0f02
 #define VIDEO_80x28         0x0f03
-#define VIDEO_80x30         0x0f04
-#define VIDEO_80x34         0x0f05
-#define VIDEO_80x60         0x0f06
-#define VIDEO_LAST_SPECIAL  0x0f07
+#define VIDEO_CURRENT_MODE  0x0f04
+#define VIDEO_80x30         0x0f05
+#define VIDEO_80x34         0x0f06
+#define VIDEO_80x60         0x0f07
+#define VIDEO_LAST_SPECIAL  0x0f08
 
 #define ASK_VGA             0xfffd
 #define VIDEO_VESA_BY_SIZE  0xffff
diff -r 8eaee9ef472f -r 07688f8f5394 xen/drivers/video/vga.c
--- a/xen/drivers/video/vga.c   Tue Jun 19 15:03:55 2007 +0100
+++ b/xen/drivers/video/vga.c   Tue Jun 19 15:09:59 2007 +0100
@@ -32,6 +32,9 @@ static unsigned char *video;
  * 
  *   'vga=ask':
  *      display a vga menu of available modes
+ * 
+ *   'vga=current':
+ *      use the current vga mode without modification
  * 
  *   'vga=text-80x<rows>':
  *      text mode, where <rows> is one of {25,28,30,34,43,50,60}

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.