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

[peter@chocky.org: Bug#234808: xserver-xfree86: XFree86 fixes for ARM]



Joey,

Would you approve a change of this nature for a stable update to woody?

----- Forwarded message from Peter Naulls <peter@chocky.org> -----

From: Peter Naulls <peter@chocky.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: Bug#234808: xserver-xfree86: XFree86 fixes for ARM
Date: Wed, 25 Feb 2004 22:11:08 +0000
Message-Id: <E1Aw7FF-0000Ui-00@puffin>
X-Mailing-List: <debian-x@lists.debian.org> archive/latest/14800
X-Mailer: reportbug 1.50
X-Spam-Status: No, hits=-5.0 required=4.0 tests=HAS_PACKAGE autolearn=no 
	version=2.60-bugs.debian.org_2004_02_22

Package: xserver-xfree86
Version: 4.1.0-16woody3
Severity: important
Tags: patch


This is a expanded version of bug #223567, which was not applied to 4.1

These patches allow XFree86 4.1 to work on ARM.  In particular, to allow
non-framebuffer devices to work.  There is one change worthy of note.  The 
open() call for ARM to access DEV_MEM includes O_SYNC i lnx_video.c.  This 
is absolutely required to ensure that memory access to card registers and other device
memory is not cached.  I didn't put a comment in, because it conflicts with 
the ia64 comment, and I suggest something suitable is done here.

Similar, if not identical, patches are required for 4.2 and 4.3. 



-- System Information
Debian Release: 3.0
Architecture: arm
Kernel: Linux puffin 2.4.22-iyonix #9 Thu Feb 19 16:31:32 GMT 2004 armv5l
Locale: LANG=C, LC_CTYPE=C

Versions of packages xserver-xfree86 depends on:
ii  debconf                1.2.35            Debian configuration management sy
ii  libc6                  2.2.5-11.5        GNU C Library: Shared libraries an
ii  xserver-common         4.1.0-16woody3    files and utilities common to all 
ii  zlib1g                 1:1.1.4-1.0woody0 compression library - runtime

--- hw/xfree86/common/xf86Bus.c.old Wed Feb 25 16:05:30 2004
+++ hw/xfree86/common/xf86Bus.c Wed Feb 25 16:06:38 2004
@@ -3123,7 +3123,7 @@
 static void
 CheckGenericGA()
 {
-#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__) /* FIXME ?? */
+#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__) && !defined(__arm__) /* FIXME ?? */
     CARD16 GenericIOBase = VGAHW_GET_IOBASE();
     CARD8 CurrentValue, TestValue;
 
--- hw/xfree86/os-support/linux/lnx_video.c.old Wed Feb 25 15:43:32 2004
+++ hw/xfree86/os-support/linux/lnx_video.c Wed Feb 25 15:55:28 2004
@@ -436,7 +436,7 @@
         mapflags |= MAP_NONCACHED; 
 #endif
 
-#if defined(__ia64__)
+#if defined(__ia64__) || defined(__arm__)
     /* this will disappear when people upgrade their kernels */
     if ((fd = open(DEV_MEM, O_RDWR|O_SYNC)) < 0) 
 #else
@@ -519,7 +519,7 @@
 #endif
  }
  close(fd);
-#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__)
+#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__) && !defined(__arm__)
  if (ioperm(0, 1024, 1) || iopl(3)) {
   if (errno == ENODEV)
    ErrorF("xf86EnableIOPorts: no I/O ports found\n");
@@ -544,7 +544,7 @@
 #if defined(__powerpc__)
  munmap(ioBase, 0x20000);
  ioBase = NULL;
-#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__)
+#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__) && !defined(__arm__)
  iopl(0);
  ioperm(0, 1024, 0);
 #endif
@@ -562,11 +562,11 @@
 xf86DisableInterrupts()
 {
  if (!ExtendedEnabled)
-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__)
+#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__) && !defined(__arm__)
      if (iopl(3) || ioperm(0, 1024, 1))
    return (FALSE);
 #endif
-#if defined(__alpha__) || defined(__mc68000__) || defined(__powerpc__) || defined(__sparc__) || defined(__mips__) || defined(__arm__) || defined(__hppa__)
+#if defined(__alpha__) || defined(__mc68000__) || defined(__powerpc__) || defined(__sparc__) || defined(__mips__) || defined(__arm__) || defined(__hppa__) || defined(__arm__)
 #else
 #ifdef __GNUC__
 #if defined(__ia64__)
@@ -580,7 +580,7 @@
  asm("cli");
 #endif
 #endif
-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__)
+#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__) && !defined(__arm__)
  if (!ExtendedEnabled) {
      iopl(0);
      ioperm(0, 1024, 0);
@@ -594,11 +594,11 @@
 xf86EnableInterrupts()
 {
  if (!ExtendedEnabled)
-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__)
+#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__) && !defined(__arm__)
      if (iopl(3) || ioperm(0, 1024, 1))
    return;
 #endif
-#if defined(__alpha__) || defined(__mc68000__) || defined(__powerpc__) || defined(__sparc__) || defined(__mips__) || defined(__arm__) || defined(__hppa__)
+#if defined(__alpha__) || defined(__mc68000__) || defined(__powerpc__) || defined(__sparc__) || defined(__mips__) || defined(__arm__) || defined(__hppa__) || defined(__arm__)
 #else
 #ifdef __GNUC__
 #if defined(__ia64__)
@@ -612,7 +612,7 @@
  asm("sti");
 #endif
 #endif
-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__)
+#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__hppa__) && !defined(__arm__)
  if (!ExtendedEnabled) {
      iopl(0);
      ioperm(0, 1024, 0);
--- hw/xfree86/vgahw/vgaHW.h.old Thu May 10 23:18:58 2001
+++ hw/xfree86/vgahw/vgaHW.h Wed Feb 25 19:31:20 2004
@@ -188,11 +188,15 @@
 #define BITS_PER_GUN 6
 #define COLORMAP_SIZE 256
 
+#ifdef __arm__
+#define DACDelay(hw)
+#else
 #define DACDelay(hw)            \
  do {             \
      unsigned char temp = inb((hw)->IOBase + VGA_IN_STAT_1_OFFSET);   \
      temp = inb((hw)->IOBase + VGA_IN_STAT_1_OFFSET);       \
  } while (0)
+#endif
 
 /* Function Prototypes */
 







-- 
To UNSUBSCRIBE, email to debian-x-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org


----- End forwarded message -----

-- 
G. Branden Robinson                |     You could wire up a dead rat to a
Debian GNU/Linux                   |     DIMM socket and the PC BIOS memory
branden@debian.org                 |     test would pass it just fine.
http://people.debian.org/~branden/ |     -- Ethan Benson

Attachment: signature.asc
Description: Digital signature


Reply to: