[Xquartz-changes] xserver: Branch 'master' - 10 commits

Jeremy Huddleston jeremyhu at freedesktop.org
Mon Nov 23 16:31:51 PST 2009


 Xi/xiproperty.c                         |    3 +
 configure.ac                            |   19 +------
 exa/exa_accel.c                         |   12 +++-
 exa/exa_migration_mixed.c               |   24 +++++---
 hw/xfree86/common/compiler.h            |   25 ++++-----
 hw/xfree86/common/xf86Init.c            |    4 +
 hw/xfree86/modes/xf86EdidModes.c        |   15 +++--
 hw/xfree86/os-support/linux/lnx.h       |   46 -----------------
 hw/xfree86/os-support/linux/lnx_axp.c   |   86 --------------------------------
 hw/xfree86/os-support/linux/lnx_ev56.c  |   73 ---------------------------
 hw/xfree86/os-support/linux/lnx_video.c |   12 +---
 include/kdrive-config.h.in              |    3 -
 12 files changed, 62 insertions(+), 260 deletions(-)

New commits:
commit ec16357edaba23694b12fd234ffa12fd58a73dfa
Author: Tiago Vignatti <tiago.vignatti at nokia.com>
Date:   Mon Nov 23 17:00:06 2009 +0200

    configure: remove unused kdrive Xvesa config variable
    
    Xvesa was gone in commit 6d21fbf0 and this should be there as well.
    
    Signed-off-by: Tiago Vignatti <tiago.vignatti at nokia.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/configure.ac b/configure.ac
index 417aa4f..6f8441c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1953,16 +1953,6 @@ if test "$KDRIVE" = yes; then
     AC_DEFINE(KDRIVESERVER,1,[Build Kdrive X server])
     AC_DEFINE(KDRIVEDDXACTIONS,,[Build kdrive ddx])
 
-    AC_CHECK_HEADERS([sys/vm86.h sys/io.h])
-    if test "$ac_cv_header_sys_vm86_h" = yes && test "x$KDRIVEVESA" = xauto; then
-        KDRIVEVESA=yes
-    fi
-
-    if test "x$KDRIVEVESA" = xyes; then
-        KDRIVEFBDEVLIB=yes
-        AC_DEFINE(KDRIVEVESA, 1, [Build VESA-based kdrive servers])
-    fi
-
     AC_CHECK_HEADERS([linux/fb.h])
     if test "$ac_cv_header_linux_fb_h" = yes && test "x$XFBDEV" = xauto; then
         XFBDEV=yes
@@ -2041,7 +2031,6 @@ AC_SUBST([KDRIVE_LOCAL_LIBS])
 AC_SUBST([KDRIVE_LIBS])
 AM_CONDITIONAL(KDRIVELINUX, [test "x$KDRIVELINUX" = xyes])
 AM_CONDITIONAL(TSLIB, [test "x$HAVE_TSLIB" = xyes])
-AM_CONDITIONAL(KDRIVEVESA, [test "x$KDRIVEVESA" = xyes])
 AM_CONDITIONAL(KDRIVEFBDEV, [test "x$XFBDEV" = xyes])
 AM_CONDITIONAL(XEPHYR, [test "x$KDRIVE" = xyes && test "x$XEPHYR" = xyes])
 AM_CONDITIONAL(BUILD_KDRIVEFBDEVLIB, [test "x$KDRIVE" = xyes && test "x$KDRIVEFBDEVLIB" = xyes])
diff --git a/include/kdrive-config.h.in b/include/kdrive-config.h.in
index 3bc7792..14efb56 100644
--- a/include/kdrive-config.h.in
+++ b/include/kdrive-config.h.in
@@ -13,9 +13,6 @@
 /* Include framebuffer support in X servers */
 #undef KDRIVEFBDEV
 
-/* Include vesa support in X servers */
-#undef KDRIVEVESA
-
 /* Enable touchscreen support */
 #undef TOUCHSCREEN
 
commit a30e739a144912a68adcaa9f426d600c6ecbd529
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Mon Nov 23 13:07:56 2009 +1000

    Xi: don't crash when deleting invalid device properties.
    
    Deleting a property that was not set on a device leads to a null-pointer
    reference. The protocol allows deleting those properties - it has to be a
    noop.
    
    Reproducible:
    xinput --set-prop "My device" --type=int --format=8 "my property" 1
    xinput --delete-prop "My other device" "my property"
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
index 024dc44..4821857 100644
--- a/Xi/xiproperty.c
+++ b/Xi/xiproperty.c
@@ -643,6 +643,9 @@ XIDeleteDeviceProperty (DeviceIntPtr device, Atom property, Bool fromClient)
         if (prop->propertyName == property)
             break;
 
+    if (!prop)
+        return Success;
+
     if (fromClient && !prop->deletable)
         return BadAccess;
 
commit 19f7c15e2008dab3c46ba3e14dfa353d01c74f72
Author: Zhao Yakui <yakui.zhao at intel.com>
Date:   Fri Nov 20 14:43:35 2009 +0800

    xfree86: Edid quirk for Philips LCD LP154W01
    
    v1->v2: Make one condition case for one quirk instead of merging them
    together. This is based on the Keithp's suggestion.
    
    Move the EDID quirk for Philips LCD LP154W01 as the panel reports the vertical
    size in cm.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=24482
    
    Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c
index 449078e..ec65408 100644
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -135,6 +135,16 @@ static Bool quirk_detailed_v_in_cm (int scrnIndex, xf86MonPtr DDC)
 	DDC->vendor.prod_id == 47360)
 	return TRUE;
 
+    /* Bug #10304: LGPhilipsLCD LP154W01-A5 */
+    if (memcmp(DDC->vendor.name, "LPL", 4) == 0 &&
+	DDC->vendor.prod_id == 0)
+	return TRUE;
+
+    /* Bug #24482: LGPhilipsLCD LP154W01-TLA1 */
+    if (memcmp(DDC->vendor.name, "LPL", 4) == 0 &&
+	DDC->vendor.prod_id == 0x2a00)
+	return TRUE;
+
     /* Bug #21750: Samsung Syncmaster 2333HD */
     if (memcmp (DDC->vendor.name, "SAM", 4) == 0 &&
 	DDC->vendor.prod_id == 1157)
@@ -145,11 +155,6 @@ static Bool quirk_detailed_v_in_cm (int scrnIndex, xf86MonPtr DDC)
 
 static Bool quirk_detailed_use_maximum_size (int scrnIndex, xf86MonPtr DDC)
 {
-    /* Bug #10304: LGPhilipsLCD LP154W01-A5 */
-    if (memcmp (DDC->vendor.name, "LPL", 4) == 0 &&
-	(DDC->vendor.prod_id == 0 || DDC->vendor.prod_id == 0x2a00))
-	return TRUE;
-
     /* Bug #21324: Iiyama Vision Master 450 */
     if (memcmp (DDC->vendor.name, "IVM", 4) == 0 &&
 	DDC->vendor.prod_id == 6400)
commit b8b8db98353760738eead612fe846c2ce1c174fa
Author: Michel Dänzer <daenzer at vmware.com>
Date:   Thu Nov 19 10:46:30 2009 +0100

    EXA: Don't use UploadToScreen for CopyNtoN with mixed pixmaps.
    
    Signed-off-by: Michel Dänzer <daenzer at vmware.com>

diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index 7e2dd70..cbff7f3 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -503,8 +503,13 @@ exaHWCopyNtoN (DrawablePtr    pSrcDrawable,
 
 	    (*pExaScr->info->DoneCopy) (pDstPixmap);
 	    exaMarkSync (pDstDrawable->pScreen);
-	/* UTS: mainly for SHM PutImage's secondary path. */
-	} else {
+	/* UTS: mainly for SHM PutImage's secondary path.
+	 *
+	 * Not taking this path for mixed pixmaps: It could only save one CPU
+	 * copy between cached memory and risks causing a more expensive
+	 * DownloadFromScreen later on.
+	 */
+	} else if (!(pExaScr->info->flags & EXA_MIXED_PIXMAPS)) {
 	    int bpp = pSrcDrawable->bitsPerPixel;
 	    int src_stride = exaGetPixmapPitch(pSrcPixmap);
 	    CARD8 *src = NULL;
@@ -531,7 +536,8 @@ exaHWCopyNtoN (DrawablePtr    pSrcDrawable,
 
 		pbox++;
 	    }
-	}
+	} else
+	    goto fallback;
     } else
 	goto fallback;
 
commit d4fc245115eb2cb323e06a82f9dd52518d9b6a16
Author: Maarten Maathuis <madman2003 at gmail.com>
Date:   Wed Nov 18 21:23:09 2009 +0100

    exa/mixed: be more thorough about setting fb_pitch when needed
    
    Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
    Acked-by: Michel Dänzer <michel at daenzer.net>

diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c
index ea6f878..121a4ad 100644
--- a/exa/exa_migration_mixed.c
+++ b/exa/exa_migration_mixed.c
@@ -98,14 +98,17 @@ exaDoMigration_mixed(ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel)
 	if (!pExaPixmap->driverPriv)
 	    exaCreateDriverPixmap_mixed(pPixmap);
 
-	if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap)) {
-	    ExaScreenPriv(pPixmap->drawable.pScreen);
-
+	if (exaPixmapIsOffscreen(pPixmap)) {
 	    pPixmap->devKind = pExaPixmap->fb_pitch;
-	    exaCopyDirtyToFb(pixmaps + i);
 
-	    if (pExaScr->deferred_mixed_pixmap == pPixmap)
-		pExaScr->deferred_mixed_pixmap = NULL;
+	    if (pExaPixmap->pDamage) {
+		ExaScreenPriv(pPixmap->drawable.pScreen);
+
+		exaCopyDirtyToFb(pixmaps + i);
+
+		if (pExaScr->deferred_mixed_pixmap == pPixmap)
+		    pExaScr->deferred_mixed_pixmap = NULL;
+	    }
 	}
 
 	pExaPixmap->offscreen = exaPixmapIsOffscreen(pPixmap);
@@ -133,8 +136,9 @@ exaMoveInPixmap_mixed(PixmapPtr pPixmap)
 void
 exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg)
 {
+    ExaPixmapPriv(pPixmap);
+
     if (!ExaDoPrepareAccess(pPixmap, index)) {
-	ExaPixmapPriv(pPixmap);
 	Bool is_offscreen = exaPixmapIsOffscreen(pPixmap);
 	ExaMigrationRec pixmaps[1];
 
@@ -197,7 +201,8 @@ exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg)
 	pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr;
 	pPixmap->devKind = pExaPixmap->sys_pitch;
 	pExaPixmap->offscreen = FALSE;
-    }
+    } else
+	pPixmap->devKind = pExaPixmap->fb_pitch;
 }
 
 /* Move back results of software rendering on system memory copy of mixed driver
commit 647b79f87a9891225678dc6fc2fbda3bdef8fa9d
Author: Maarten Maathuis <madman2003 at gmail.com>
Date:   Wed Nov 18 21:23:08 2009 +0100

    exa/mixed: avoid copying back pixmap data when no migration took place
    
    - When the driver handles the prepare access no copying is needed.
    - Delayed pixmap creation should be fine, because it's handled by the
      first prepare access, but the exaPixmapIsOffscreen check in finish access
      will return FALSE without a driver pixmap.
    
    Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
    Acked-by: Michel Dänzer <michel at daenzer.net>

diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c
index 6065d75..ea6f878 100644
--- a/exa/exa_migration_mixed.c
+++ b/exa/exa_migration_mixed.c
@@ -210,7 +210,8 @@ void exaFinishAccess_mixed(PixmapPtr pPixmap, int index)
 {
     ExaPixmapPriv(pPixmap);
 
-    if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap)) {
+    if (pExaPixmap->pDamage && !pExaPixmap->offscreen &&
+	    exaPixmapIsOffscreen(pPixmap)){
 	DamageRegionProcessPending(&pPixmap->drawable);
 
 	if (index == EXA_PREPARE_DEST || index == EXA_PREPARE_AUX_DEST) {
commit 30be7ceaf228497ac1ff0a1123c1b35e3aa1fc73
Author: Julien Cristau <jcristau at debian.org>
Date:   Sat Nov 14 18:39:00 2009 +0100

    xfree86: set a sane umask before opening the log
    
    Xorg creates its log file following the umask of the user running
    startx, which may result in a world-writable log.  Set umask to 022 to
    prevent this.
    
    Debian bug#555308 <http://bugs.debian.org/555308>
    See also http://thread.gmane.org/gmane.comp.security.oss.general/2299
    
    Signed-off-by: Julien Cristau <jcristau at debian.org>
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 2d682aa..30f0c85 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -1151,8 +1151,10 @@ OsVendorInit(void)
   signal(SIGCHLD, SIG_DFL);	/* Need to wait for child processes */
 #endif
 
-  if (!beenHere)
+  if (!beenHere) {
+    umask(022);
     xf86LogInit();
+  }
 
         /* Set stderr to non-blocking. */
 #ifndef O_NONBLOCK
commit fb95090730360b6b7f5429c40937e8fc9dfe5c14
Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Nov 9 03:33:45 2009 +0000

    Use glibc's in/out routines
    
    Let's let glibc do the right thing for dense/sparse selection.
    
    The _alpha_iobase code has been unused since the switch to libpciaccess. It
    really should have been killed by fba700f1f6a8976.
    
    Signed-off-by: Matt Turner <mattst88 at gmail.com>
    Tested-by: Michael Cree <mcree at orcon.net.nz>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index a450bd6..dc5f157 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -316,46 +316,47 @@ static __inline__ void stw_u(uint16_t val, uint16_t *p)
 /* note that the appropriate setup via "ioperm" needs to be done */
 /*  *before* any inx/outx is done. */
 
-extern _X_EXPORT void (*_alpha_outb)(char val, unsigned long port);
+extern _X_EXPORT void _outb(unsigned char val, unsigned long port);
+extern _X_EXPORT void _outw(unsigned short val, unsigned long port);
+extern _X_EXPORT void _outl(unsigned int val, unsigned long port);
+extern _X_EXPORT unsigned int _inb(unsigned long port);
+extern _X_EXPORT unsigned int _inw(unsigned long port);
+extern _X_EXPORT unsigned int _inl(unsigned long port);
+
 static __inline__ void
 outb(unsigned long port, unsigned char val)
 {
-    _alpha_outb(val, port);
+    _outb(val, port);
 }
 
-extern _X_EXPORT void (*_alpha_outw)(short val, unsigned long port);
 static __inline__ void
 outw(unsigned long port, unsigned short val)
 {
-    _alpha_outw(val, port);
+    _outw(val, port);
 }
 
-extern _X_EXPORT void (*_alpha_outl)(int val, unsigned long port);
 static __inline__ void
 outl(unsigned long port, unsigned int val)
 {
-    _alpha_outl(val, port);
+    _outl(val, port);
 }
 
-extern _X_EXPORT unsigned int (*_alpha_inb)(unsigned long port);
 static __inline__ unsigned int
 inb(unsigned long port)
 {
-  return _alpha_inb(port);
+  return _inb(port);
 }
 
-extern _X_EXPORT unsigned int (*_alpha_inw)(unsigned long port);
 static __inline__ unsigned int
 inw(unsigned long port)
 {
-  return _alpha_inw(port);
+  return _inw(port);
 }
 
-extern _X_EXPORT unsigned int (*_alpha_inl)(unsigned long port);
 static __inline__ unsigned int
 inl(unsigned long port)
 {
-  return _alpha_inl(port);
+  return _inl(port);
 }
 
 #    endif /* linux */
diff --git a/hw/xfree86/os-support/linux/lnx.h b/hw/xfree86/os-support/linux/lnx.h
deleted file mode 100644
index 33363dd..0000000
--- a/hw/xfree86/os-support/linux/lnx.h
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#ifndef LNX_H_
-# ifdef __alpha__
-extern unsigned long _bus_base __P ((void)) __attribute__ ((const));
-extern unsigned long _bus_base_sparse __P ((void)) __attribute__ ((const));
-extern int iopl __P ((int __level));
-
-/* new pciconfig_iobase syscall added in 2.2.15 and 2.3.99 */
-#  include <linux/unistd.h>
-extern long (*_iobase)(unsigned, int, int, int);
-
-/*
- * _iobase deals with the case the __NR_pciconfig_iobase is either undefined
- * or unsupported by the kernel, but we need to make sure that the `which'
- * argument symbols are defined.
- */
-#  ifndef IOBASE_HOSE
-#   define IOBASE_HOSE 		0
-#  endif
-#  ifndef IOBASE_SPARSE_MEM
-#   define IOBASE_SPARSE_MEM	1
-#  endif
-#  ifndef IOBASE_DENSE_MEM
-#   define IOBASE_DENSE_MEM	2
-#  endif
-#  ifndef IOBASE_SPARSE_IO
-#   define IOBASE_SPARSE_IO	3
-#  endif
-#  ifndef IOBASE_DENSE_IO
-#   define IOBASE_DENSE_IO	4
-#  endif
-#  ifndef IOBASE_ROOT_BUS
-#   define IOBASE_ROOT_BUS	5
-#  endif
-#  ifndef IOBASE_FROM_HOSE
-#   define IOBASE_FROM_HOSE	0x10000
-#  endif
-# endif /* __alpha__ */
-
-#define LNX_H_
-
-#endif
diff --git a/hw/xfree86/os-support/linux/lnx_axp.c b/hw/xfree86/os-support/linux/lnx_axp.c
index 10b97b0..10fd9e8 100644
--- a/hw/xfree86/os-support/linux/lnx_axp.c
+++ b/hw/xfree86/os-support/linux/lnx_axp.c
@@ -4,10 +4,7 @@
 #endif
 
 #include <stdio.h>
-#include <X11/X.h>
-#include "os.h"
 #include "xf86.h"
-#include "xf86Priv.h"
 #include "shared/xf86Axp.h"
 
 axpDevice lnxGetAXP(void);
@@ -102,86 +99,3 @@ lnxGetAXP(void)
 	count++;
   } while (1);
 }
-
-/*
- * pciconfig_iobase wrappers and dynamic i/o selection
- */
-#include "lnx.h"
-#include <unistd.h>
-#include <errno.h>
-
-/* glibc versions (single hose only) */
-extern void _outb(char val, unsigned long port);
-extern void _outw(short val, unsigned long port);
-extern void _outl(int val, unsigned long port);
-extern unsigned int _inb(unsigned long port);
-extern unsigned int _inw(unsigned long port);
-extern unsigned int _inl(unsigned long port);
-
-extern void _dense_outb(char, unsigned long);
-extern void _dense_outw(short, unsigned long);
-extern void _dense_outl(int, unsigned long);
-extern unsigned int _dense_inb(unsigned long);
-extern unsigned int _dense_inw(unsigned long);
-extern unsigned int _dense_inl(unsigned long);
-
-_X_EXPORT void (*_alpha_outb)(char, unsigned long) = _outb;
-_X_EXPORT void (*_alpha_outw)(short, unsigned long) = _outw;
-_X_EXPORT void (*_alpha_outl)(int, unsigned long) = _outl;
-_X_EXPORT unsigned int (*_alpha_inb)(unsigned long) = _inb;
-_X_EXPORT unsigned int (*_alpha_inw)(unsigned long) = _inw;
-_X_EXPORT unsigned int (*_alpha_inl)(unsigned long) = _inl;
-
-static long _alpha_iobase_query(unsigned, int, int, int);
-long (*_iobase)(unsigned, int, int, int) = _alpha_iobase_query;
-
-static long
-_alpha_iobase(unsigned flags, int hose, int bus, int devfn)
-{
-  if (bus < 0) {
-    bus = hose;
-    flags |= IOBASE_FROM_HOSE;
-  }
-
-  return syscall(__NR_pciconfig_iobase, flags, bus, devfn);
-}
-
-static long
-_alpha_iobase_legacy(unsigned flags, int hose, int bus, int devfn)
-{
-  if (hose > 0) return -ENODEV;
-  if (flags & IOBASE_DENSE_MEM) return _bus_base();
-  if (flags & IOBASE_SPARSE_MEM) return _bus_base_sparse();
-  return 0;
-}
-
-static long 
-_alpha_iobase_query(unsigned flags, int hose, int bus, int devfn)
-{
-  /*
-   * Only use iobase if the syscall is supported *and* it's
-   * a dense io system
-   */
-  if (_alpha_iobase(IOBASE_DENSE_IO, 0, 0, 0) > 0) {
-    /*
-     * The syscall worked and it's a dense io system - take over the
-     * io subsystem
-     */
-    _iobase = _alpha_iobase;
-
-    /* 
-     * Only take over the inx/outx functions if this is a dense I/O
-     * system *and* addressing domains are being used. The dense I/O
-     * routines expect I/O to be mapped (as done in xf86MapLegacyIO)
-     */
-    _alpha_outb = _dense_outb;
-    _alpha_outw = _dense_outw;
-    _alpha_outl = _dense_outl;
-    _alpha_inb = _dense_inb;
-    _alpha_inw = _dense_inw;
-    _alpha_inl = _dense_inl;
-  } else _iobase = _alpha_iobase_legacy;
-
-  return _iobase(flags, hose, bus, devfn);
-}
-
diff --git a/hw/xfree86/os-support/linux/lnx_ev56.c b/hw/xfree86/os-support/linux/lnx_ev56.c
index c65e1cc..cb3460d 100644
--- a/hw/xfree86/os-support/linux/lnx_ev56.c
+++ b/hw/xfree86/os-support/linux/lnx_ev56.c
@@ -3,15 +3,8 @@
 #include <xorg-config.h>
 #endif
 
-#include <X11/X.h>
-#include "input.h"
-#include "scrnintstr.h"
-#include "compiler.h"
-
 #include "xf86.h"
-#include "xf86Priv.h"
-#include "xf86_OSlib.h"
-#include "xf86OSpriv.h"
+#include "compiler.h"
 
 int readDense8(pointer Base, register unsigned long Offset);
 int readDense16(pointer Base, register unsigned long Offset);
@@ -88,67 +81,3 @@ writeDense32(int Value, pointer Base, register unsigned long Offset)
     write_mem_barrier();
     *(volatile CARD32 *)((unsigned long)Base+(Offset)) = Value;
 }
-
-
-
-void
-_dense_outb(char val, unsigned long port)
-{
-  if ((port & ~0xffff) == 0) {
-  _outb(val, port);
-  } else {
-  write_mem_barrier();
-  *(volatile CARD8 *)port = val;
-  }
-}
-
-void
-_dense_outw(short val, unsigned long port)
-{
-  if ((port & ~0xffff) == 0) {
-  _outw(val, port);
-  } else {
-  write_mem_barrier();
-  *(volatile CARD16 *)port = val;
-  }
-}
-
-void
-_dense_outl(int val, unsigned long port)
-{
-  if ((port & ~0xffff) == 0) {
-  _outl(val, port);
-  } else {
-  write_mem_barrier();
-  *(volatile CARD32 *)port = val;
-  }
-}
-
-unsigned int
-_dense_inb(unsigned long port)
-{
-  if ((port & ~0xffff) == 0) return _inb(port);
-
-  mem_barrier();
-  return *(volatile CARD8 *)port;
-}
-
-unsigned int
-_dense_inw(unsigned long port)
-{
-  if ((port & ~0xffff) == 0) return _inw(port);
-
-  mem_barrier();
-  return *(volatile CARD16 *)port;
-}
-
-unsigned int
-_dense_inl(unsigned long port)
-{
-  if ((port & ~0xffff) == 0) return _inl(port);
-
-  mem_barrier();
-  return *(volatile CARD32 *)port;
-}
-
-
diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
index e159f46..26a1742 100644
--- a/hw/xfree86/os-support/linux/lnx_video.c
+++ b/hw/xfree86/os-support/linux/lnx_video.c
@@ -73,15 +73,9 @@ extern int iopl(int __level);
 #endif
 
 #ifdef __alpha__
-
-extern void sethae(unsigned long hae);
-
 # define BUS_BASE bus_base
-
 #else 
-
 #define BUS_BASE (0)
-
 #endif /*  __alpha__ */
 
 /***************************************************************************/
@@ -91,6 +85,10 @@ extern void sethae(unsigned long hae);
 static pointer mapVidMem(int, unsigned long, unsigned long, int);
 static void unmapVidMem(int, pointer, unsigned long);
 #if defined (__alpha__) 
+extern void sethae(unsigned long hae);
+extern unsigned long _bus_base __P ((void)) __attribute__ ((const));
+extern unsigned long _bus_base_sparse __P ((void)) __attribute__ ((const));
+
 static pointer mapVidMemSparse(int, unsigned long, unsigned long, int);
 extern axpDevice lnxGetAXP(void);
 static void unmapVidMemSparse(int, pointer, unsigned long);
@@ -99,7 +97,6 @@ static Bool needSparse;
 static unsigned long hae_thresh;
 static unsigned long hae_mask;
 static unsigned long bus_base;
-static unsigned long sparse_size;
 #endif
 
 #ifdef HAS_MTRR_SUPPORT
@@ -375,7 +372,6 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
 	  if ((needSparse = (_bus_base_sparse() > 0))) {
 	    hae_thresh = xf86AXPParams[axpSystem].hae_thresh;
 	    hae_mask = xf86AXPParams[axpSystem].hae_mask;
-	    sparse_size = xf86AXPParams[axpSystem].size;
 	  }
 	  bus_base = _bus_base();
 	}
commit 0ef15ca9d2d9c78c79a2771c550563bc6931b365
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Nov 17 11:48:35 2009 +1000

    Move xdmxconfig modules into DMX conditionals (#25102)
    
    xdmxconfig requires additional modules not checked for if Xdmx build is set
    to auto (the default). This may lead to build errors if the Xdmx modules are
    installed, but not the extra ones required for xdmxconfig.
    
    X.Org Bug 25102 <http://bugs.freedesktop.org/show_bug.cgi?id=25102>
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Tested-by: Adrian Bunk <bunk at stusta.de>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/configure.ac b/configure.ac
index 58d5ead..417aa4f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1881,9 +1881,9 @@ AM_CONDITIONAL(XQUARTZ_SPARKLE, [test "x$XQUARTZ_SPARKLE" != "xno"])
 AM_CONDITIONAL(STANDALONE_XPBPROXY, [test "x$STANDALONE_XPBPROXY" = xyes])
 
 dnl DMX DDX
-
+XDMXCONFIG_MODULES="xaw7 xmu xt xpm x11"
 PKG_CHECK_MODULES([DMXMODULES],
-    [xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES],
+    [xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES $XDMXCONFIG_MODULES],
     [have_dmx=yes], [have_dmx=no])
 AC_MSG_CHECKING([whether to build Xdmx DDX])
 if test "x$DMX" = xauto; then
@@ -1917,7 +1917,7 @@ dnl USB sources in DMX require <linux/input.h>
 dnl Linux sources in DMX require <linux/keyboard.h>
 	AC_CHECK_HEADER([linux/keyboard.h], DMX_BUILD_LNX="yes",
 			DMX_BUILD_LNX="no")
-	PKG_CHECK_MODULES([XDMXCONFIG_DEP], [xaw7 xmu xt xpm x11])
+	PKG_CHECK_MODULES([XDMXCONFIG_DEP], [$XDMXCONFIG_MODULES])
 	AC_SUBST(XDMXCONFIG_DEP_CFLAGS)
 	AC_SUBST(XDMXCONFIG_DEP_LIBS)
 	PKG_CHECK_MODULES([DMXEXAMPLES_DEP], [$LIBDMX $LIBXEXT x11])
commit df95be4d3d9a744720e37a16fd89d9569bf6e188
Author: Paulo Ricardo Zanoni <pzanoni at mandriva.com>
Date:   Thu Nov 12 11:27:34 2009 -0200

    configure: change 'sigio-default' to 'use-sigio-by-default'
    
    This was discussed in this thread:
    http://lists.x.org/archives/xorg-devel/2009-September/002025.html
    The patch sent fixed the help string but not the configure option.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/configure.ac b/configure.ac
index 77ff466..58d5ead 100644
--- a/configure.ac
+++ b/configure.ac
@@ -456,7 +456,7 @@ AC_ARG_ENABLE(debug,         AS_HELP_STRING([--enable-debug],
 AC_ARG_ENABLE(unit-tests,    AS_HELP_STRING([--enable-unit-tests],
                                   [Enable unit-tests (default: auto)]),
                                 [UNITTESTS=$enableval], [UNITTESTS=auto])
-AC_ARG_ENABLE(sigio-default, AS_HELP_STRING([--enable-use-sigio-by-default]
+AC_ARG_ENABLE(use-sigio-by-default, AS_HELP_STRING([--enable-use-sigio-by-default]
   [Enable SIGIO input handlers by default (default: $USE_SIGIO_BY_DEFAULT)]),
                                 [USE_SIGIO_BY_DEFAULT=$enableval], [])
 AC_ARG_WITH(int10,           AS_HELP_STRING([--with-int10=BACKEND], [int10 backend: vm86, x86emu or stub]),


More information about the Xquartz-changes mailing list