WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] x86: propagate VESA capabilities to dom0

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] x86: propagate VESA capabilities to dom0
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Thu, 09 Aug 2007 13:28:05 +0100
Delivery-date: Thu, 09 Aug 2007 05:24:19 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Linux has been using the VESA capabilities field for quite a while, so
Xen should also supply it. At once, in case needed in the future, also
propagate the mode attributes field.

(Applies cleanly only on top of the previously sent VESA LFB output
patch.)

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

Index: 2007-08-08/xen/arch/x86/boot/video.S
===================================================================
--- 2007-08-08.orig/xen/arch/x86/boot/video.S   2007-08-09 12:59:50.000000000 
+0200
+++ 2007-08-08/xen/arch/x86/boot/video.S        2007-08-09 13:56:54.000000000 
+0200
@@ -44,6 +44,7 @@
 #define PARAM_LFB_COLORS        0x1c
 #define PARAM_VESAPM_SEG        0x24
 #define PARAM_VESAPM_OFF        0x26
+#define PARAM_VESA_ATTRIB       0x28
 #define _param(param) bootsym(boot_vid_info)+(param)
 
 video:  xorw    %ax, %ax
@@ -129,6 +130,8 @@ mopar_gr:
         movl    %eax, _param(PARAM_LFB_COLORS)
         movl    35(%di), %eax
         movl    %eax, _param(PARAM_LFB_COLORS+4)
+        movw    0(%di), %ax
+        movw    %ax, _param(PARAM_VESA_ATTRIB)
 
 # get video mem size
         leaw    vesa_glob_info, %di
Index: 2007-08-08/xen/arch/x86/setup.c
===================================================================
--- 2007-08-08.orig/xen/arch/x86/setup.c        2007-08-09 12:59:50.000000000 
+0200
+++ 2007-08-08/xen/arch/x86/setup.c     2007-08-09 12:58:04.000000000 +0200
@@ -357,6 +357,7 @@ struct boot_video_info {
     u8  rsvd_pos;           /* 0x23 */
     u16 vesapm_seg;         /* 0x24 */
     u16 vesapm_off;         /* 0x26 */
+    u16 vesa_attrib;        /* 0x28 */
 };
 
 static void __init parse_video_info(void)
@@ -389,6 +390,8 @@ static void __init parse_video_info(void
         vga_console_info.u.vesa_lfb.blue_size = bvi->blue_size;
         vga_console_info.u.vesa_lfb.rsvd_pos = bvi->rsvd_pos;
         vga_console_info.u.vesa_lfb.rsvd_size = bvi->rsvd_size;
+        vga_console_info.u.vesa_lfb.capabilities = bvi->capabilities;
+        vga_console_info.u.vesa_lfb.attributes = bvi->vesa_attrib;
     }
 }
 
Index: 2007-08-08/xen/drivers/video/vesa.c
===================================================================
--- 2007-08-08.orig/xen/drivers/video/vesa.c    2007-08-09 12:59:50.000000000 
+0200
+++ 2007-08-08/xen/drivers/video/vesa.c 2007-08-09 12:59:23.000000000 +0200
@@ -38,7 +38,7 @@ int __init vesa_early_init(void)
 {
     int type;
 
-    /* XXX vga_compat = !(boot_video_info.capabilities & 2); */
+    vga_compat = !(vesa_lfb_info.capabilities & 2);
 
     if ( vesa_lfb_info.bits_per_pixel < 8 || vesa_lfb_info.bits_per_pixel > 32 
)
         return -ENOSYS;
Index: 2007-08-08/xen/include/public/xen.h
===================================================================
--- 2007-08-08.orig/xen/include/public/xen.h    2007-06-11 15:01:03.000000000 
+0200
+++ 2007-08-08/xen/include/public/xen.h 2007-08-09 12:29:56.000000000 +0200
@@ -565,6 +565,12 @@ typedef struct dom0_vga_console_info {
             uint8_t  green_pos, green_size;
             uint8_t  blue_pos, blue_size;
             uint8_t  rsvd_pos, rsvd_size;
+#if __XEN_INTERFACE_VERSION__ >= 0x00030206
+            /* VESA capabilities. */
+            uint32_t capabilities;
+            /* Mode attributes. */
+            uint16_t attributes;
+#endif
         } vesa_lfb;
     } u;
 } dom0_vga_console_info_t;




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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] x86: propagate VESA capabilities to dom0, Jan Beulich <=