On Wed, 2006-08-16 at 15:24 +0100, Keir Fraser wrote:

> Actually I'm not sure this is particularly necessary for headless x86
> either. I could move the test to the end of setup_vga(), and only probe
> 0xb8000?

Hi Keir,

   Yeah, I think something like the below change to your previous patch
would be fine.  Thanks!

        Alex

Signed-off-by: Alex Williamson <[EMAIL PROTECTED]>
---

diff -r aa9ed07f34a5 xen/drivers/video/vga.c
--- a/xen/drivers/video/vga.c   Wed Aug 16 08:38:18 2006 -0600
+++ b/xen/drivers/video/vga.c   Wed Aug 16 08:46:30 2006 -0600
@@ -321,45 +321,6 @@ static int detect_video(void *video_base
     return video_found;
 }
 
-static int detect_vga(void)
-{
-    int detected;
-    void *p;
-
-    if ( memory_is_conventional_ram(0xA0000) )
-        return 0;
-
-    /*
-     * Look at a number of well-known locations. Even if video is not at
-     * 0xB8000 right now, it will appear there when we set up text mode 3.
-     * 
-     * We assume if there is any sign of a video adaptor then it is at least
-     * VGA-compatible (surely noone runs CGA, EGA, .... these days?).
-     * 
-     * These checks are basically to detect headless server boxes.
-     */
-
-    p = ioremap(0xA0000, 0x1000);
-    detected = detect_video(p);
-    iounmap(p);
-    if ( detected )
-        return 1;
-
-    p = ioremap(0xB0000, 0x1000);
-    detected = detect_video(p);
-    iounmap(p);
-    if ( detected )
-        return 1;
-
-    p = ioremap(0xB8000, 0x1000);
-    detected = detect_video(p);
-    iounmap(p);
-    if ( detected )
-        return 1;
-
-    return 0;
-}
-
 /* This is actually code from vgaHWRestore in an old version of XFree86 :-) */
 void *setup_vga(void)
 {
@@ -378,9 +339,10 @@ void *setup_vga(void)
         0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x0c, 0x00, 0x0f, 0x08, 0x00
     };
 
-    int i, j;
-
-    if ( !detect_vga() )
+    int i, j, detected;
+    void *p;
+
+    if ( memory_is_conventional_ram(0xA0000) )
     {
         printk("No VGA adaptor detected!\n");
         return NULL;
@@ -407,6 +369,12 @@ void *setup_vga(void)
     
     inb(VGA_IS1_RC);
     outb(0x20, VGA_ATT_IW);
+
+    p = ioremap(0xB8000, 0x1000);
+    detected = detect_video(p);
+    iounmap(p);
+    if ( !detected )
+        return NULL;
 
     return ioremap(0xB8000, 0x8000);
 }



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

Reply via email to