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

Bug#234808: Updated patch for 4.3.0



Here is an updated version of the 4.1.0 patch that applies to 4.3.0.

It replaces the existing 315_arm_* patch that was the result of the
partial bug223567 patch.

I haven't yet proved that it works (building now...), but I do think that
this bug needs upgrading from wishlist - xfree86 doesn't work at all on the
netwinder without it, and is probably broken on all/most other arm devices
too.

---------
The files xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c
          xc/programs/Xserver/hw/xfree86/common/xf86Bus.c and
	  xc/programs/Xserver/hw/xfree86/vgahw/vhaHW.h
require some checks for the ARM architecture to prevent the X server from
trying to execute code meant only for x86.  This is consistent with other
non-x86 platforms.

This patch by Peter Naulls, updated by Wookey.  Not submitted upstream yet.

diff -urN xc/programs/Xserver/hw/xfree86/common/xf86Bus.c xc.new/programs/Xserver/hw/xfree86/common/xf86Bus.c
--- xc/programs/Xserver/hw/xfree86/common/xf86Bus.c	2003-02-21 18:19:34.000000000 +0100
+++ xc.new/programs/Xserver/hw/xfree86/common/xf86Bus.c	2004-05-06 17:41:54.000000000 +0200
@@ -2966,7 +2966,7 @@
 CheckGenericGA()
 {
 /* This needs to be changed for multiple domains */
-#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__)
+#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__) && !defined(__arm__)
     IOADDRESS GenericIOBase = VGAHW_GET_IOBASE();
     CARD8 CurrentValue, TestValue;

diff -urN xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c xc.new/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c
--- xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c	2004-05-06 18:11:19.000000000 +0200
+++ xc.new/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c	2004-05-06 18:03:55.000000000 +0200
@@ -420,7 +420,7 @@
 	   Base,realBase,alignOff);
 #endif
     
-#if defined(__ia64__)
+#if defined(__ia64__) || defined(__arm__)
 #ifndef MAP_WRITECOMBINED
 #define MAP_WRITECOMBINED 0x00010000
 #endif
@@ -522,7 +522,7 @@
 #endif
 	}
 	close(fd);
-#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__)
+#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__)
 	if (ioperm(0, 1024, 1) || iopl(3)) {
 		if (errno == ENODEV)
 			ErrorF("xf86EnableIOPorts: no I/O ports found\n");
@@ -548,7 +548,7 @@
 #if defined(__powerpc__)
 	munmap(ioBase, 0x20000);
 	ioBase = NULL;
-#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__)
+#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__)
 	iopl(0);
 	ioperm(0, 1024, 0);
 #endif
@@ -567,7 +567,7 @@
 Bool
 xf86DisableInterrupts()
 {
-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__sh__) && !defined(__hppa__)
+#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__)
	if (!ExtendedEnabled)
	    if (iopl(3) || ioperm(0, 1024, 1))
 			return (FALSE);
@@ -586,7 +586,7 @@
 	asm("cli");
 # endif
 #endif
-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__ia64__) && !defined(__hppa__)
+#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__ia64__) && !defined(__hppa__) && !defined(__arm__)
 	if (!ExtendedEnabled) {
 	    iopl(0);
 	    ioperm(0, 1024, 0);
@@ -599,7 +599,7 @@
 void
 xf86EnableInterrupts()
 {
-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__sh__) && !defined(__hppa__)
+#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__)
 	if (!ExtendedEnabled)
 	    if (iopl(3) || ioperm(0, 1024, 1))
 			return;
@@ -618,7 +618,7 @@
 	asm("sti");
 # endif
 #endif
-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__ia64__) && !defined(__hppa__)
+#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__ia64__) && !defined(__hppa__) && !defined(__arm__)
 	if (!ExtendedEnabled) {
 	    iopl(0);
 	    ioperm(0, 1024, 0);
diff -urN xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.h xc.new/programs/Xserver/hw/xfree86/vgahw/vgaHW.h
--- xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.h	2002-04-04 16:05:56.000000000 +0200
+++ xc.new/programs/Xserver/hw/xfree86/vgahw/vgaHW.h	2004-05-06 17:43:49.000000000 +0200
@@ -176,7 +176,7 @@
 #define BITS_PER_GUN 6
 #define COLORMAP_SIZE 256
 
-#if defined(__powerpc__)
+#if defined(__powerpc__) || defined(__arm__)
 #define DACDelay(hw) /* No legacy VGA support */
 #else
 #define DACDelay(hw)							      \


Wookey
-- 
Aleph One Ltd, Bottisham, CAMBRIDGE, CB5 9BA, UK  Tel +44 (0) 1223 811679
work: http://www.aleph1.co.uk/     play: http://www.chaos.org.uk/~wookey/



Reply to: