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

[Xen-devel] [PATCH] [POWERPC] fix vga.c compilation



# HG changeset patch
# User Hollis Blanchard <hollisb@xxxxxxxxxx>
# Date 1155683306 18000
# Node ID 2250d38aed3854c626bdc642a91884754f9d12d8
# Parent  6dcd85ea232e0de5445f325abd0829a0ed6d56a1
[POWERPC] fix vga.c compilation
- replace vga_readb/writeb with plain readb/writeb
- add per-arch vga.c and vga.h
- make detect_video() a per-arch function
- stop doing void* arithmetic
- remove i386 ifdef

Boot-tested on PowerPC; compile-tested on x86.

Signed-off-by Hollis Blanchard <hollisb@xxxxxxxxxx>

diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/ia64/xen/Makefile
--- a/xen/arch/ia64/xen/Makefile        Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/arch/ia64/xen/Makefile        Tue Aug 15 18:08:26 2006 -0500
@@ -25,5 +25,6 @@ obj-y += xentime.o
 obj-y += xentime.o
 obj-y += flushd.o
 obj-y += privop_stat.o
+obj-y += vga.o
 
 obj-$(crash_debug) += gdbstub.o
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/powerpc/Makefile
--- a/xen/arch/powerpc/Makefile Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/arch/powerpc/Makefile Tue Aug 15 18:08:26 2006 -0500
@@ -35,6 +35,7 @@ obj-y += smp.o
 obj-y += smp.o
 obj-y += time.o
 obj-y += usercopy.o
+obj-y += vga.o
 
 obj-$(debug) += 0opt.o
 obj-$(crash_debug) += gdbstub.o
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/x86/Makefile
--- a/xen/arch/x86/Makefile     Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/arch/x86/Makefile     Tue Aug 15 18:08:26 2006 -0500
@@ -38,6 +38,7 @@ obj-y += trampoline.o
 obj-y += trampoline.o
 obj-y += traps.o
 obj-y += usercopy.o
+obj-y += vga.o
 obj-y += x86_emulate.o
 
 ifneq ($(pae),n)
diff -r 6dcd85ea232e -r 2250d38aed38 xen/drivers/video/vga.c
--- a/xen/drivers/video/vga.c   Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/drivers/video/vga.c   Tue Aug 15 18:08:26 2006 -0500
@@ -14,6 +14,7 @@
 #include <xen/console.h>
 #include <xen/font.h>
 #include <xen/vga.h>
+#include <asm/vga.h>
 #include <asm/io.h>
 
 /* Some of the code below is taken from SVGAlib.  The original,
@@ -159,13 +160,6 @@
  * into a single 16-bit quantity */
 #define VGA_OUT16VAL(v, r)       (((v) << 8) | (r))
 
-#if defined(__i386__) || defined(__x86_64__)
-# define vgabase 0
-# define VGA_OUTW_WRITE
-# define vga_readb(x) (*(x))
-# define vga_writeb(x,y) (*(y) = (x))
-#endif
-
 /*
  * generic VGA port read/write
  */
@@ -187,17 +181,17 @@ static inline void vga_io_w_fast(uint16_
 
 static inline uint8_t vga_mm_r(void __iomem *regbase, uint16_t port)
 {
-    return readb(regbase + port);
+    return readb((char *)regbase + port);
 }
 
 static inline void vga_mm_w(void __iomem *regbase, uint16_t port, uint8_t val)
 {
-    writeb(val, regbase + port);
+    writeb(val, (char *)regbase + port);
 }
 
 static inline void vga_mm_w_fast(void __iomem *regbase, uint16_t port, uint8_t 
reg, uint8_t val)
 {
-    writew(VGA_OUT16VAL(val, reg), regbase + port);
+    writew(VGA_OUT16VAL(val, reg), (char *)regbase + port);
 }
 
 static inline uint8_t vga_r(void __iomem *regbase, uint16_t port)
@@ -302,43 +296,6 @@ static inline void vga_wattr(void __iome
     vga_w(regbase, VGA_ATT_W, val);
 }
 
-static int detect_video(void *video_base)
-{
-    volatile u16 *p = (volatile u16 *)video_base;
-    u16 saved1 = p[0], saved2 = p[1];
-    int video_found = 1;
-
-    p[0] = 0xAA55;
-    p[1] = 0x55AA;
-    if ( (p[0] != 0xAA55) || (p[1] != 0x55AA) )
-        video_found = 0;
-
-    p[0] = 0x55AA;
-    p[1] = 0xAA55;
-    if ( (p[0] != 0x55AA) || (p[1] != 0xAA55) )
-        video_found = 0;
-
-    p[0] = saved1;
-    p[1] = saved2;
-
-    return video_found;
-}
-
-static int detect_vga(void)
-{
-    /*
-     * 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.
-     */
-    return (detect_video(ioremap(0xA0000, 0x1000)) || 
-            detect_video(ioremap(0xB0000, 0x1000)) || 
-            detect_video(ioremap(0xB8000, 0x1000)));
-}
 
 /* This is actually code from vgaHWRestore in an old version of XFree86 :-) */
 void *setup_vga(void)
@@ -519,11 +476,11 @@ int vga_load_font(const struct font_desc
 
         for ( i = j = 0; i < CHAR_MAP_SIZE; )
         {
-            vga_writeb(j < font->count * fontheight ? data[j++] : 0,
+            writeb(j < font->count * fontheight ? data[j++] : 0,
                        map + i++);
             if ( !(j % fontheight) )
                 while ( i & (FONT_HEIGHT_MAX - 1) )
-                    vga_writeb(0, map + i++);
+                    writeb(0, map + i++);
         }
     }
 
diff -r 6dcd85ea232e -r 2250d38aed38 xen/include/xen/vga.h
--- a/xen/include/xen/vga.h     Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/include/xen/vga.h     Tue Aug 15 18:08:26 2006 -0500
@@ -11,6 +11,7 @@
 
 struct font_desc;
 
+int detect_vga(void);
 void *setup_vga(void);
 void vga_cursor_off(void);
 int vga_load_font(const struct font_desc *, unsigned rows);
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/ia64/xen/vga.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/arch/ia64/xen/vga.c   Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,27 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#include <xen/vga.h>
+
+int detect_vga(void)
+{
+       /* disabled completely for now */
+    return 0;
+}
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/powerpc/vga.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/arch/powerpc/vga.c    Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,27 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#include <xen/vga.h>
+
+int detect_vga(void)
+{
+       /* disabled completely for now */
+    return 0;
+}
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/x86/vga.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/arch/x86/vga.c        Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,59 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ * Copyright (c) 2002-2004, K A Fraser.
+ */
+
+#include <xen/types.h>
+#include <xen/vga.h>
+#include <asm/io.h>
+
+static int detect_video(void *video_base)
+{
+    volatile u16 *p = (volatile u16 *)video_base;
+    u16 saved1 = p[0], saved2 = p[1];
+    int video_found = 1;
+
+    p[0] = 0xAA55;
+    p[1] = 0x55AA;
+    if ( (p[0] != 0xAA55) || (p[1] != 0x55AA) )
+        video_found = 0;
+
+    p[0] = 0x55AA;
+    p[1] = 0xAA55;
+    if ( (p[0] != 0x55AA) || (p[1] != 0xAA55) )
+        video_found = 0;
+
+    p[0] = saved1;
+    p[1] = saved2;
+
+    return video_found;
+}
+
+int detect_vga(void)
+{
+    /*
+     * 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.
+     */
+    return (detect_video(ioremap(0xA0000, 0x1000)) || 
+            detect_video(ioremap(0xB0000, 0x1000)) || 
+            detect_video(ioremap(0xB8000, 0x1000)));
+}
diff -r 6dcd85ea232e -r 2250d38aed38 xen/include/asm-ia64/vga.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/include/asm-ia64/vga.h        Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,33 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#ifndef _ASM_VGA_H_
+#define _ASM_VGA_H_
+
+#define vgabase 0
+#define VGA_OUTW_WRITE
+
+static int detect_vga(void)
+{
+       /* disabled completely for now */
+       return 0;
+}
+
+#endif /* _ASM_VGA_H_ */
diff -r 6dcd85ea232e -r 2250d38aed38 xen/include/asm-powerpc/vga.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/include/asm-powerpc/vga.h     Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,27 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#ifndef _ASM_VGA_H_
+#define _ASM_VGA_H_
+
+#define vgabase 0
+#define VGA_OUTW_WRITE
+
+#endif /* _ASM_VGA_H_ */
diff -r 6dcd85ea232e -r 2250d38aed38 xen/include/asm-x86/vga.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/include/asm-x86/vga.h Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,27 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#ifndef _ASM_VGA_H_
+#define _ASM_VGA_H_
+
+#define vgabase 0
+#define VGA_OUTW_WRITE
+
+#endif /* _ASM_VGA_H_ */

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


 


Rackspace

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