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

xorg-server: Changes to 'ubuntu'



 ChangeLog                                           |  279 ++++++++++++++++++++
 Xext/dpms.c                                         |   17 -
 Xext/sync.c                                         |   32 +-
 Xext/xtest.c                                        |    2 
 config/hal.c                                        |   21 -
 configure.ac                                        |    8 
 debian/changelog                                    |   38 ++
 debian/control                                      |    2 
 debian/patches/184_virtual_devices_autodetect.patch |    8 
 debian/patches/20_hurd-i386.diff                    |    2 
 debian/patches/fedora-vboxvideo.diff                |   21 +
 debian/patches/fix-dga-removal.patch                |  155 +++++++++++
 debian/patches/series                               |    7 
 debian/rules                                        |    2 
 debian/xsfbs/xsfbs.mk                               |    4 
 debian/xsfbs/xsfbs.sh                               |  229 ----------------
 dix/dispatch.c                                      |   22 +
 dix/dixfonts.c                                      |   29 +-
 dix/events.c                                        |    4 
 dix/getevents.c                                     |    4 
 dix/window.c                                        |    2 
 exa/exa_accel.c                                     |    1 
 glx/glxext.c                                        |   27 +
 hw/xfree86/common/xf86Config.c                      |   16 -
 hw/xfree86/dri2/dri2.c                              |   12 
 hw/xfree86/fbdevhw/fbdevhw.c                        |    8 
 hw/xfree86/modes/xf86Crtc.c                         |    7 
 hw/xfree86/modes/xf86Cursors.c                      |    6 
 hw/xfree86/modes/xf86DiDGA.c                        |  119 +-------
 hw/xfree86/modes/xf86RandR12.c                      |    4 
 hw/xfree86/modes/xf86Rotate.c                       |    7 
 include/dix.h                                       |    6 
 mi/mieq.c                                           |    4 
 render/render.c                                     |    7 
 34 files changed, 679 insertions(+), 433 deletions(-)

New commits:
commit b5a69c947e394e898f75eb0e74c89dd7f02eec07
Author: Brice Goglin <bgoglin@debian.org>
Date:   Wed Sep 30 22:40:33 2009 +0200

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index 2b0800b..63dbd01 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,8 @@
-xorg-server (2:1.6.4-2) UNRELEASED; urgency=low
+xorg-server (2:1.6.4-2) unstable; urgency=low
 
   * Add fix-dga-removal.patch, closes: #548724.
 
- -- Brice Goglin <bgoglin@debian.org>  Wed, 30 Sep 2009 22:38:57 +0200
+ -- Brice Goglin <bgoglin@debian.org>  Wed, 30 Sep 2009 22:40:29 +0200
 
 xorg-server (2:1.6.4-1) unstable; urgency=low
 

commit 8991664b0679b29d630e4cd5827c8c31e37022e3
Author: Brice Goglin <bgoglin@debian.org>
Date:   Wed Sep 30 22:40:25 2009 +0200

    Add fix-dga-removal.patch

diff --git a/debian/changelog b/debian/changelog
index eda61cc..2b0800b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.6.4-2) UNRELEASED; urgency=low
+
+  * Add fix-dga-removal.patch, closes: #548724.
+
+ -- Brice Goglin <bgoglin@debian.org>  Wed, 30 Sep 2009 22:38:57 +0200
+
 xorg-server (2:1.6.4-1) unstable; urgency=low
 
   * New upstream release.
diff --git a/debian/patches/fix-dga-removal.patch b/debian/patches/fix-dga-removal.patch
new file mode 100644
index 0000000..874c02a
--- /dev/null
+++ b/debian/patches/fix-dga-removal.patch
@@ -0,0 +1,155 @@
+From 894680ec0335d7bc2c744c53f6a28b40ab850b6c Mon Sep 17 00:00:00 2001
+From: Keith Packard <keithp@keithp.com>
+Date: Mon, 28 Sep 2009 12:39:47 -0700
+Subject: [PATCH] Re-fix DGA removal.
+
+Removing DGA ended up breaking any drivers calling into the old
+xf86DiDGAInit function as it tried to see if DGA was already enabled
+and ended up crashing if the VT wasn't completely initialized. Oops.
+
+Also, if the driver initializes DGA itself, have the DiDGA
+initialization overwrite that information as the DiDGA code will call
+ReInit on mode detect.
+
+Signed-off-by: Keith Packard <keithp@keithp.com>
+---
+ hw/xfree86/common/xf86DGA.c  |   29 ++++++++++++++++-------------
+ hw/xfree86/modes/xf86Crtc.c  |    4 ++--
+ hw/xfree86/modes/xf86Crtc.h  |    8 ++++++++
+ hw/xfree86/modes/xf86DiDGA.c |   15 ++++++++++++---
+ 4 files changed, 38 insertions(+), 18 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c
+index 42b7c58..804fd37 100644
+--- a/hw/xfree86/common/xf86DGA.c
++++ b/hw/xfree86/common/xf86DGA.c
+@@ -120,8 +120,22 @@ DGAInit(
+ 
+     DGAScreenKey = &DGAScreenKeyIndex;
+ 
+-    if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
+-	return FALSE;
++    pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen);
++
++    if (!pScreenPriv)
++    {
++	if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
++	    return FALSE;
++	dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
++	pScreenPriv->CloseScreen = pScreen->CloseScreen;
++	pScreen->CloseScreen = DGACloseScreen;
++	pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
++	pScreen->DestroyColormap = DGADestroyColormap;
++	pScreenPriv->InstallColormap = pScreen->InstallColormap;
++	pScreen->InstallColormap = DGAInstallColormap;
++	pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
++	pScreen->UninstallColormap = DGAUninstallColormap;
++    }
+ 
+     pScreenPriv->pScrn = pScrn;
+     pScreenPriv->numModes = num;
+@@ -146,17 +160,6 @@ DGAInit(
+ 	    modes[i].flags &= ~DGA_PIXMAP_AVAILABLE;
+ #endif
+ 
+-    dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
+-    pScreenPriv->CloseScreen = pScreen->CloseScreen;
+-    pScreen->CloseScreen = DGACloseScreen;
+-    pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
+-    pScreen->DestroyColormap = DGADestroyColormap;
+-    pScreenPriv->InstallColormap = pScreen->InstallColormap;
+-    pScreen->InstallColormap = DGAInstallColormap;
+-    pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
+-    pScreen->UninstallColormap = DGAUninstallColormap;
+-
+-
+     return TRUE;
+ }
+ 
+diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
+index c1e31e0..506fbb9 100644
+--- a/hw/xfree86/modes/xf86Crtc.c
++++ b/hw/xfree86/modes/xf86Crtc.c
+@@ -806,7 +806,7 @@ xf86CrtcScreenInit (ScreenPtr screen)
+     screen->CloseScreen = xf86CrtcCloseScreen;
+     
+ #ifdef XFreeXDGA
+-    xf86DiDGAInit(screen, 0);
++    _xf86_di_dga_init_internal(screen);
+ #endif
+ #ifdef RANDR_13_INTERFACE
+     return RANDR_INTERFACE_VERSION;
+@@ -1928,7 +1928,7 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn)
+     scrn->currentMode = scrn->modes;
+ #ifdef XFreeXDGA
+     if (scrn->pScreen)
+-	    xf86DiDGAReInit(scrn->pScreen);
++	    _xf86_di_dga_reinit_internal(scrn->pScreen);
+ #endif
+ }
+ 
+diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
+index 69afaa5..9baa956 100644
+--- a/hw/xfree86/modes/xf86Crtc.h
++++ b/hw/xfree86/modes/xf86Crtc.h
+@@ -833,6 +833,10 @@ xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus);
+ extern _X_EXPORT Bool
+ xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address);
+ 
++/* this is the real function, used only internally */
++_X_INTERNAL Bool
++_xf86_di_dga_init_internal (ScreenPtr pScreen);
++
+ /**
+  * Re-initialize dga for this screen (as when the set of modes changes)
+  */
+@@ -841,6 +845,10 @@ extern _X_EXPORT Bool
+ xf86DiDGAReInit (ScreenPtr pScreen);
+ #endif
+ 
++/* This is the real function, used only internally */
++_X_INTERNAL Bool
++_xf86_di_dga_reinit_internal (ScreenPtr pScreen);
++
+ /*
+  * Set the subpixel order reported for the screen using
+  * the information from the outputs
+diff --git a/hw/xfree86/modes/xf86DiDGA.c b/hw/xfree86/modes/xf86DiDGA.c
+index 0f7b834..60fbdbf 100644
+--- a/hw/xfree86/modes/xf86DiDGA.c
++++ b/hw/xfree86/modes/xf86DiDGA.c
+@@ -175,6 +175,12 @@ static DGAFunctionRec xf86_dga_funcs = {
+ Bool
+ xf86DiDGAReInit (ScreenPtr pScreen)
+ {
++    return TRUE;
++}
++
++Bool
++_xf86_di_dga_reinit_internal (ScreenPtr pScreen)
++{
+     ScrnInfoPtr		scrn = xf86Screens[pScreen->myNum];
+     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+     
+@@ -190,12 +196,15 @@ xf86DiDGAReInit (ScreenPtr pScreen)
+ Bool
+ xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address)
+ {
++    return TRUE;
++}
++
++Bool
++_xf86_di_dga_init_internal (ScreenPtr pScreen)
++{
+     ScrnInfoPtr		scrn = xf86Screens[pScreen->myNum];
+     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+ 
+-    if (DGAAvailable(pScreen->myNum))
+-	return TRUE;
+-
+     xf86_config->dga_flags = 0;
+     xf86_config->dga_address = 0;
+     xf86_config->dga_width = 0;
+-- 
+1.6.4.3
+
diff --git a/debian/patches/series b/debian/patches/series
index 7cb847a..0a3f303 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -8,3 +8,4 @@ Add-libgcrypt-as-an-option-for-sha1.diff
 fedora-bad-fbdev-thats-mine.patch
 fedora-pci-primary.diff
 fedora-vboxvideo.diff
+fix-dga-removal.patch

commit afcb67a1196d9ea54e5edb467d9294727766e81b
Author: Brice Goglin <bgoglin@debian.org>
Date:   Mon Sep 28 07:24:02 2009 +0200

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index ab7d9ef..eda61cc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.6.4-1) UNRELEASED; urgency=low
+xorg-server (2:1.6.4-1) unstable; urgency=low
 
   * New upstream release.
   * Update 20_hurd-i386.diff, thanks Samuel Thibault, closes: #548606.

commit c2a97b90bbc48ba9090ffa92651d6454e1db892c
Author: Brice Goglin <bgoglin@debian.org>
Date:   Mon Sep 28 07:23:42 2009 +0200

    Drop render-return-the-supported-version.patch

diff --git a/debian/changelog b/debian/changelog
index 232779e..ab7d9ef 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,8 +2,9 @@ xorg-server (2:1.6.4-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * Update 20_hurd-i386.diff, thanks Samuel Thibault, closes: #548606.
+  * Drop render-return-the-supported-version.patch, applied upstream.
 
- -- Brice Goglin <bgoglin@debian.org>  Mon, 28 Sep 2009 07:13:38 +0200
+ -- Brice Goglin <bgoglin@debian.org>  Mon, 28 Sep 2009 07:23:07 +0200
 
 xorg-server (2:1.6.3.901-1) unstable; urgency=low
 
diff --git a/debian/patches/render-return-the-supported-version.patch b/debian/patches/render-return-the-supported-version.patch
deleted file mode 100644
index cdd8485..0000000
--- a/debian/patches/render-return-the-supported-version.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a4c328fe2f65d1bacd5593233277b0ea4eb9af69 Mon Sep 17 00:00:00 2001
-From: Julien Cristau <jcristau@debian.org>
-Date: Sun, 13 Sep 2009 11:52:37 +0200
-Subject: [PATCH] render: return the supported version rather than just passing the proto's version
-
----
- render/render.c |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-Index: xorg-server/render/render.c
-===================================================================
---- xorg-server.orig/render/render.c
-+++ xorg-server/render/render.c
-@@ -54,6 +54,9 @@
- #define UINT32_MAX 0xffffffffU
- #endif
- 
-+#define SERVER_RENDER_MAJOR 0
-+#define SERVER_RENDER_MINOR 10
-+
- static int ProcRenderQueryVersion (ClientPtr pClient);
- static int ProcRenderQueryPictFormats (ClientPtr pClient);
- static int ProcRenderQueryPictIndexValues (ClientPtr pClient);
-@@ -271,8 +274,8 @@
-     rep.type = X_Reply;
-     rep.length = 0;
-     rep.sequenceNumber = client->sequence;
--    rep.majorVersion = RENDER_MAJOR;
--    rep.minorVersion = RENDER_MINOR;
-+    rep.majorVersion = SERVER_RENDER_MAJOR;
-+    rep.minorVersion = SERVER_RENDER_MINOR;
-     if (client->swapped) {
-     	swaps(&rep.sequenceNumber, n);
-     	swapl(&rep.length, n);
diff --git a/debian/patches/series b/debian/patches/series
index a6c870c..7cb847a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -8,4 +8,3 @@ Add-libgcrypt-as-an-option-for-sha1.diff
 fedora-bad-fbdev-thats-mine.patch
 fedora-pci-primary.diff
 fedora-vboxvideo.diff
-render-return-the-supported-version.patch

commit 672092edd3f2472d23b4940acf074e69118db3e2
Author: Brice Goglin <bgoglin@debian.org>
Date:   Mon Sep 28 07:13:55 2009 +0200

    New upstream release

diff --git a/ChangeLog b/ChangeLog
index 73582f3..6977328 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,108 @@
+commit 8cf659f3a5914369a2137ac17b689e5a9fe9ca27
+Author: Keith Packard <keithp@keithp.com>
+Date:   Sun Sep 27 19:21:45 2009 -0700
+
+    Bump to version 1.6.4
+    
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit a26fd1a6d61507b3e69a04d6f6c192a6ec363c5c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Sep 16 15:46:55 2009 +1000
+
+    Don't send events through the master if the device has SendCoreEvents off.
+    
+    In server 1.6, all devices are attached to the master device (VCP or VCK).
+    Sending an event through the master device means the device is sending core
+    events. If a device is configured as SendCoreEvents, just send through the
+    device, not through the master.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 507e57381fea6334f7dc8da6925e53d2c76fddcb
+Author: Keith Packard <keithp@keithp.com>
+Date:   Fri Sep 18 21:12:17 2009 -0700
+
+    xfree86/modes: Remove all framebuffer support from DGA
+    
+    This removes all rendering and mapping code from xf86DiDGA, leaving
+    just mode setting and raw input device access. The mapping code didn't
+    have the offset within /dev/mem for the frame buffer and the pixmap
+    support assumed that the framebuffer was never reallocated.
+    (cherry picked from 0b7c6c728c2e2d8433a188315cc591308a89cd85)
+    
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit c3d182a47902d02f9e64f933b8565ae336f73f54
+Author: Rémi Cardona <remi@gentoo.org>
+Date:   Mon Sep 14 17:09:59 2009 +0200
+
+    dix: append "built-ins" to the font path in SetDefaultFontPath
+    
+    49b93df8a3002db7196aa3fc1fd8dca1c12a55d6 made the hard dependency on
+    a "fixed" font go away but only Xorg could use the built-ins fonts by
+    default.
+    
+    With this commit, all DDXs get "built-ins" appended to their FontPath, not
+    just Xorg.
+    
+    Tested with Xorg, Xvfb and Xnest.
+    (cherry picked from commit f56cbe1ef24415d0142b9a7d0ab0a031069ccb52)
+    
+    Signed-off-by: Rémi Cardona <remi@gentoo.org>
+    Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+    Tested-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 9bc4a69040493e589a3811ca5e085e323438996d
+Author: Daniel Stone <daniel@fooishbar.org>
+Date:   Wed Sep 9 15:48:33 2009 +1000
+
+    fbdevhw: Test for graphics:fb%d as well as graphics/fb%d
+    
+    Apparently the kernel can't decide on an API to expose to userspace, so
+    let's just try both in the hope that one will work.
+    
+    Signed-off-by: Daniel Stone <daniel@fooishbar.org>
+    Acked-by: Michel Dänzer <michel@daenzer.net>
+    (cherry picked from commit f4350c66b493d63fa06be87caa958d7033232ea4)
+
+commit d78669c92d751464bc3c8f79f2aa21ca0951e3a9
+Author: Keith Packard <keithp@keithp.com>
+Date:   Tue Sep 22 12:09:48 2009 -0700
+
+    render: return the supported version rather than just passing the proto's version
+    
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit f5d1da499c3d64f0a4ac217eb19911b8e35cb49b
+Author: Michel Dänzer <daenzer@vmware.com>
+Date:   Tue Jun 23 16:45:39 2009 +0200
+
+    dri2: Don't crash if pPriv is NULL.
+    (cherry picked from commit df597709d71f47b8516e27c6fb1bfffd59de5e48)
+    
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 468787bdd2c34f9edf46da76b6357034c216fa7b
+Author: Richard Hughes <richard@hughsie.com>
+Date:   Fri Aug 14 11:44:35 2009 +0100
+
+    Don't reset the lastDeviceEventTime when doing DPMS actions
+    
+    When we change the DPMS mode, don't play games with the last event time as
+    this breaks applications using IDLETIME to turn the backlight off after a
+    preset time.
+    
+    This patch fixes gnome-power-manager and xfce-power-manager
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit c1d901d723c3bee523736eacc15b44a7dff484fe)
+    
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
 commit 3044711412d0a08ba65a491bd2441c0c8980f5e2
 Author: Keith Packard <keithp@keithp.com>
 Date:   Tue Aug 25 22:37:16 2009 -0700
diff --git a/debian/changelog b/debian/changelog
index c9b04f4..232779e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
-xorg-server (2:1.6.3.901-2) UNRELEASED; urgency=low
+xorg-server (2:1.6.4-1) UNRELEASED; urgency=low
 
+  * New upstream release.
   * Update 20_hurd-i386.diff, thanks Samuel Thibault, closes: #548606.
 
- -- Brice Goglin <bgoglin@debian.org>  Sun, 27 Sep 2009 20:16:51 +0200
+ -- Brice Goglin <bgoglin@debian.org>  Mon, 28 Sep 2009 07:13:38 +0200
 
 xorg-server (2:1.6.3.901-1) unstable; urgency=low
 

commit 8cf659f3a5914369a2137ac17b689e5a9fe9ca27
Author: Keith Packard <keithp@keithp.com>
Date:   Sun Sep 27 19:21:45 2009 -0700

    Bump to version 1.6.4
    
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/configure.ac b/configure.ac
index 9bb566c..3c19b35 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,12 +26,12 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.6.3.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+AC_INIT([xorg-server], 1.6.4, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE
 
-RELEASE_DATE="2009-8-25"
+RELEASE_DATE="2009-9-27"
 
 dnl this gets generated by autoheader, and thus contains all the defines.  we
 dnl don't ever actually use it, internally.

commit a26fd1a6d61507b3e69a04d6f6c192a6ec363c5c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 16 15:46:55 2009 +1000

    Don't send events through the master if the device has SendCoreEvents off.
    
    In server 1.6, all devices are attached to the master device (VCP or VCK).
    Sending an event through the master device means the device is sending core
    events. If a device is configured as SendCoreEvents, just send through the
    device, not through the master.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/dix/getevents.c b/dix/getevents.c
index 9747b35..eadcbeb 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -536,7 +536,7 @@ static EventListPtr
 updateFromMaster(EventListPtr events, DeviceIntPtr dev, int *num_events)
 {
     DeviceIntPtr master = dev->u.master;
-    if (master && master->u.lastSlave != dev)
+    if (master && master->u.lastSlave != dev && dev->coreEvents)
     {
         updateSlaveDeviceCoords(master, dev);
         master->u.lastSlave = dev;
@@ -674,7 +674,7 @@ positionSprite(DeviceIntPtr dev, int *x, int *y,
      * to the current screen. */
     miPointerSetPosition(dev, &dev->last.valuators[0], &dev->last.valuators[1]);
 
-    if (dev->u.master) {
+    if (dev->u.master && dev->coreEvents) {
         dev->u.master->last.valuators[0] = dev->last.valuators[0];
         dev->u.master->last.valuators[1] = dev->last.valuators[1];
     }
diff --git a/mi/mieq.c b/mi/mieq.c
index 213ad5b..478e68b 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -446,7 +446,7 @@ mieqProcessInputEvents(void)
             NewCurrentScreen (dev, DequeueScreen(dev), x, y);
         }
         else {
-            if (master) {
+            if (master && dev->coreEvents) {
                 /* Force a copy of the key class into the VCK so that the layout
                    is transferred. */
                 if (event->u.u.type == DeviceKeyPress ||
@@ -473,7 +473,7 @@ mieqProcessInputEvents(void)
                 /* process slave first, then master */
                 dev->public.processInputProc(event, dev, nevents);
 
-                if (master)
+                if (master && dev->coreEvents)
                     master->public.processInputProc(masterEvents->event, master,
                                                     nevents);
             }

commit 1530ea1e7dba6554fa70c1286f866061630ffce2
Author: Brice Goglin <bgoglin@debian.org>
Date:   Sun Sep 27 20:17:54 2009 +0200

    Update 20_hurd-i386.diff

diff --git a/debian/changelog b/debian/changelog
index 53758f4..c9b04f4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.6.3.901-2) UNRELEASED; urgency=low
+
+  * Update 20_hurd-i386.diff, thanks Samuel Thibault, closes: #548606.
+
+ -- Brice Goglin <bgoglin@debian.org>  Sun, 27 Sep 2009 20:16:51 +0200
+
 xorg-server (2:1.6.3.901-1) unstable; urgency=low
 
   [ Julien Cristau ]
diff --git a/debian/patches/20_hurd-i386.diff b/debian/patches/20_hurd-i386.diff
index fbc32c6..fc54f4c 100644
--- a/debian/patches/20_hurd-i386.diff
+++ b/debian/patches/20_hurd-i386.diff
@@ -65,7 +65,7 @@ Index: xorg-server/hw/xfree86/os-support/hurd/hurd_video.c
 -pointer 
 -xf86MapVidMem(int ScreenNum,int Flags, unsigned long Base, unsigned long Size)
 +static pointer 
-+mapVidMem(int ScreenNum,int Flags, unsigned long Base, unsigned long Size)
++mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int Flags)
  {
      mach_port_t device,iopl_dev;
      memory_object_t iopl_mem;

commit 507e57381fea6334f7dc8da6925e53d2c76fddcb
Author: Keith Packard <keithp@keithp.com>
Date:   Fri Sep 18 21:12:17 2009 -0700

    xfree86/modes: Remove all framebuffer support from DGA
    
    This removes all rendering and mapping code from xf86DiDGA, leaving
    just mode setting and raw input device access. The mapping code didn't
    have the offset within /dev/mem for the frame buffer and the pixmap
    support assumed that the framebuffer was never reallocated.
    (cherry picked from 0b7c6c728c2e2d8433a188315cc591308a89cd85)
    
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index e9bde36..899cea5 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -769,6 +769,9 @@ xf86CrtcScreenInit (ScreenPtr screen)
     config->CloseScreen = screen->CloseScreen;
     screen->CloseScreen = xf86CrtcCloseScreen;
     
+#ifdef XFreeXDGA
+    xf86DiDGAInit(screen, 0);
+#endif
 #ifdef RANDR_13_INTERFACE
     return RANDR_INTERFACE_VERSION;
 #else
@@ -1882,6 +1885,10 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn)
 	}
     }
     scrn->currentMode = scrn->modes;
+#ifdef XFreeXDGA
+    if (scrn->pScreen)
+	    xf86DiDGAReInit(scrn->pScreen);
+#endif
 }
 
 static void
diff --git a/hw/xfree86/modes/xf86DiDGA.c b/hw/xfree86/modes/xf86DiDGA.c
index f40d0ab..3992c09 100644
--- a/hw/xfree86/modes/xf86DiDGA.c
+++ b/hw/xfree86/modes/xf86DiDGA.c
@@ -72,8 +72,7 @@ xf86_dga_get_modes (ScreenPtr pScreen)
 	mode = modes + num++;
 
 	mode->mode = display_mode;
-	mode->flags = DGA_CONCURRENT_ACCESS | DGA_PIXMAP_AVAILABLE;
-        mode->flags |= DGA_FILL_RECT | DGA_BLIT_RECT;
+	mode->flags = DGA_CONCURRENT_ACCESS;
 	if (display_mode->Flags & V_DBLSCAN)
 	    mode->flags |= DGA_DOUBLESCAN;
 	if (display_mode->Flags & V_INTERLACE)
@@ -91,14 +90,14 @@ xf86_dga_get_modes (ScreenPtr pScreen)
 	mode->yViewportStep = 1;
 	mode->viewportFlags = DGA_FLIP_RETRACE;
 	mode->offset = 0;
-	mode->address = (unsigned char *) xf86_config->dga_address;
-	mode->bytesPerScanline = xf86_config->dga_stride;
-	mode->imageWidth = xf86_config->dga_width;
-	mode->imageHeight = xf86_config->dga_height;
+	mode->address = 0;
+	mode->imageWidth = mode->viewportWidth;
+	mode->imageHeight = mode->viewportHeight;
+	mode->bytesPerScanline = (mode->imageWidth * scrn->bitsPerPixel) >> 3;
 	mode->pixmapWidth = mode->imageWidth;
 	mode->pixmapHeight = mode->imageHeight;
-	mode->maxViewportX = mode->imageWidth -	mode->viewportWidth;
-	mode->maxViewportY = mode->imageHeight - mode->viewportHeight;
+	mode->maxViewportX = 0;
+	mode->maxViewportY = 0;
 
 	display_mode = display_mode->next;
 	if (display_mode == scrn->modes)
@@ -149,93 +148,11 @@ xf86_dga_set_viewport(ScrnInfoPtr scrn, int x, int y, int flags)
 }
 
 static Bool
-xf86_dga_get_drawable_and_gc (ScrnInfoPtr scrn, DrawablePtr *ppDrawable, GCPtr *ppGC)
-{
-    ScreenPtr		pScreen = scrn->pScreen;
-    xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
-    PixmapPtr		pPixmap;
-    GCPtr		pGC;
-    
-    pPixmap = GetScratchPixmapHeader (pScreen, xf86_config->dga_width, xf86_config->dga_height,
-				      scrn->depth, scrn->bitsPerPixel, xf86_config->dga_stride, 
-				      (char *) scrn->memPhysBase + scrn->fbOffset);
-    if (!pPixmap)
-	return FALSE;
-    pGC  = GetScratchGC (scrn->depth, pScreen);
-    if (!pGC)
-    {
-	FreeScratchPixmapHeader (pPixmap);
-	return FALSE;
-    }
-    *ppDrawable = &pPixmap->drawable;
-    *ppGC = pGC;
-    return TRUE;
-}
-
-static void
-xf86_dga_release_drawable_and_gc (ScrnInfoPtr scrn, DrawablePtr pDrawable, GCPtr pGC)
-{
-    FreeScratchGC (pGC);
-    FreeScratchPixmapHeader ((PixmapPtr) pDrawable);
-}
-
-static void
-xf86_dga_fill_rect(ScrnInfoPtr scrn, int x, int y, int w, int h, unsigned long color)
-{
-    GCPtr		pGC;
-    DrawablePtr		pDrawable;
-    XID			vals[1];
-    xRectangle		r;
-
-    if (!xf86_dga_get_drawable_and_gc (scrn, &pDrawable, &pGC))
-	return;
-    vals[0] = color;
-    ChangeGC (pGC, GCForeground, vals);
-    ValidateGC (pDrawable, pGC);
-    r.x = x;
-    r.y = y;
-    r.width = w;
-    r.height = h;
-    pGC->ops->PolyFillRect (pDrawable, pGC, 1, &r);
-    xf86_dga_release_drawable_and_gc (scrn, pDrawable, pGC);
-}
-
-static void
-xf86_dga_sync(ScrnInfoPtr scrn)
-{
-    ScreenPtr	pScreen = scrn->pScreen;
-    WindowPtr	pRoot = WindowTable [pScreen->myNum];
-    char	buffer[4];
-
-    pScreen->GetImage (&pRoot->drawable, 0, 0, 1, 1, ZPixmap, ~0L, buffer);
-}
-
-static void
-xf86_dga_blit_rect(ScrnInfoPtr scrn, int srcx, int srcy, int w, int h, int dstx, int dsty)
-{
-    DrawablePtr	pDrawable;
-    GCPtr	pGC;
-
-    if (!xf86_dga_get_drawable_and_gc (scrn, &pDrawable, &pGC))
-	return;
-    ValidateGC (pDrawable, pGC);
-    pGC->ops->CopyArea (pDrawable, pDrawable, pGC, srcx, srcy, w, h, dstx, dsty);
-    xf86_dga_release_drawable_and_gc (scrn, pDrawable, pGC);
-}
-
-static Bool
 xf86_dga_open_framebuffer(ScrnInfoPtr scrn,
 			  char **name,
 			  unsigned char **mem, int *size, int *offset, int *flags)
 {
-    xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
-    
-    *size = xf86_config->dga_stride * xf86_config->dga_height;
-    *mem = (unsigned char *) (xf86_config->dga_address);
-    *offset = 0;
-    *flags = DGA_NEED_ROOT;
-
-    return TRUE;
+    return FALSE;
 }
 
 static void
@@ -249,9 +166,9 @@ static DGAFunctionRec xf86_dga_funcs = {
    xf86_dga_set_mode,
    xf86_dga_set_viewport,
    xf86_dga_get_viewport,
-   xf86_dga_sync,
-   xf86_dga_fill_rect,
-   xf86_dga_blit_rect,
+   NULL,
+   NULL,
+   NULL,
    NULL
 };
 
@@ -261,6 +178,9 @@ xf86DiDGAReInit (ScreenPtr pScreen)
     ScrnInfoPtr		scrn = xf86Screens[pScreen->myNum];
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
     
+    if (!DGAAvailable(pScreen->myNum))
+	return TRUE;
+
     if (!xf86_dga_get_modes (pScreen))
 	return FALSE;
     
@@ -273,11 +193,14 @@ xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address)
     ScrnInfoPtr		scrn = xf86Screens[pScreen->myNum];
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
 
+    if (DGAAvailable(pScreen->myNum))
+	return TRUE;
+
     xf86_config->dga_flags = 0;
-    xf86_config->dga_address = dga_address;
-    xf86_config->dga_width = scrn->virtualX;
-    xf86_config->dga_height = scrn->virtualY;
-    xf86_config->dga_stride = scrn->displayWidth * scrn->bitsPerPixel >> 3;
+    xf86_config->dga_address = 0;
+    xf86_config->dga_width = 0;
+    xf86_config->dga_height = 0;
+    xf86_config->dga_stride = 0;
     
     if (!xf86_dga_get_modes (pScreen))
 	return FALSE;
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 4546492..0637ed5 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -1,5 +1,5 @@
 /*
- * Copyright � 2002 Keith Packard, member of The XFree86 Project, Inc.
+ * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -460,7 +460,6 @@ xf86RandR12GetInfo (ScreenPtr pScreen, Rotation *rotations)
     {
 	xf86ProbeOutputModes (scrp, 0, 0);
 	xf86SetScrnInfoModes (scrp);
-	xf86DiDGAReInit (pScreen);
     }
 
     for (mode = scrp->modes; ; mode = mode->next)
@@ -1481,7 +1480,6 @@ xf86RandR12GetInfo12 (ScreenPtr pScreen, Rotation *rotations)
 	return TRUE;
     xf86ProbeOutputModes (pScrn, 0, 0);
     xf86SetScrnInfoModes (pScrn);
-    xf86DiDGAReInit (pScreen);
     return xf86RandR12SetInfo12 (pScreen);
 }
 

commit c3d182a47902d02f9e64f933b8565ae336f73f54
Author: Rémi Cardona <remi@gentoo.org>
Date:   Mon Sep 14 17:09:59 2009 +0200

    dix: append "built-ins" to the font path in SetDefaultFontPath
    
    49b93df8a3002db7196aa3fc1fd8dca1c12a55d6 made the hard dependency on
    a "fixed" font go away but only Xorg could use the built-ins fonts by
    default.
    
    With this commit, all DDXs get "built-ins" appended to their FontPath, not
    just Xorg.
    
    Tested with Xorg, Xvfb and Xnest.
    (cherry picked from commit f56cbe1ef24415d0142b9a7d0ab0a031069ccb52)
    
    Signed-off-by: Rémi Cardona <remi@gentoo.org>
    Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
    Tested-by: Jon TURNEY <jon.turney@dronecode.org.uk>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index 719bca4..174372e 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -1815,6 +1815,9 @@ SetFontPath(ClientPtr client, int npaths, unsigned char *paths, int *error)
 int
 SetDefaultFontPath(char *path)
 {
+    char       *temp_path,
+               *start,
+               *end;
     unsigned char *cp,
                *pp,
                *nump,
@@ -1825,12 +1828,31 @@ SetDefaultFontPath(char *path)
                 size = 0,
                 bad;
 
+    /* ensure temp_path contains "built-ins" */
+    start = path;
+    while (1) {
+	start = strstr(start, "built-ins");
+	if (start == NULL)
+	    break;
+	end = start + strlen("built-ins");
+	if ((start == path || start[-1] == ',') && (!*end || *end == ','))
+	    break;
+	start = end;
+    }
+    if (!start) {
+	temp_path = Xprintf("%s%sbuilt-ins", path, *path ? "," : "");
+    } else {
+	temp_path = Xstrdup(path);
+    }
+    if (!temp_path)
+        return BadAlloc;
+
     /* get enough for string, plus values -- use up commas */
-    len = strlen(path) + 1;
-    nump = cp = newpath = (unsigned char *) xalloc(len);
+    len = strlen(temp_path) + 1;
+    nump = cp = newpath = xalloc(len);
     if (!newpath)
 	return BadAlloc;
-    pp = (unsigned char *) path;
+    pp = (unsigned char *) temp_path;
     cp++;
     while (*pp) {
 	if (*pp == ',') {
@@ -1849,6 +1871,7 @@ SetDefaultFontPath(char *path)
     err = SetFontPathElements(num, newpath, &bad, TRUE);
 
     xfree(newpath);
+    xfree(temp_path);
 
     return err;
 }
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 9376119..ddf4745 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -612,22 +612,6 @@ configFiles(XF86ConfFilesPtr fileconf)
 	pathFrom = X_DEFAULT;
     temp_path = defaultFontPath ? defaultFontPath : "";
 
-    /* ensure defaultFontPath contains "built-ins" */
-    start = strstr(temp_path, "built-ins");
-    end = start + strlen("built-ins");
-    if (start == NULL ||
-	!((start == temp_path || start[-1] == ',') && (!*end || *end == ','))) {
-	defaultFontPath = Xprintf("%s%sbuilt-ins",
-				  temp_path, *temp_path ? "," : "");
-	if (must_copy == TRUE) {
-	    if (defaultFontPath != NULL) {
-		must_copy = FALSE;
-	    }
-	} else {
-	    /* already made a copy of the font path */
-	    xfree(temp_path);
-	}
-    }
     /* xf86ValidateFontPath modifies its argument, but returns a copy of it. */
     temp_path = must_copy ? XNFstrdup(defaultFontPath) : defaultFontPath;
     defaultFontPath = xf86ValidateFontPath(temp_path);

commit 9bc4a69040493e589a3811ca5e085e323438996d
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Wed Sep 9 15:48:33 2009 +1000

    fbdevhw: Test for graphics:fb%d as well as graphics/fb%d
    
    Apparently the kernel can't decide on an API to expose to userspace, so
    let's just try both in the hope that one will work.
    
    Signed-off-by: Daniel Stone <daniel@fooishbar.org>
    Acked-by: Michel Dänzer <michel@daenzer.net>
    (cherry picked from commit f4350c66b493d63fa06be87caa958d7033232ea4)

diff --git a/hw/xfree86/fbdevhw/fbdevhw.c b/hw/xfree86/fbdevhw/fbdevhw.c
index 5269277..d6e78b9 100644
--- a/hw/xfree86/fbdevhw/fbdevhw.c
+++ b/hw/xfree86/fbdevhw/fbdevhw.c
@@ -318,7 +318,13 @@ fbdev_open_pci(struct pci_device * pPci, char **namep)
 		pPci->domain, pPci->bus, pPci->dev, pPci->func, i);
 
 	fd = open(filename, O_RDONLY, 0);
-	if (fd != -1) {
+        if (fd < 0) {
+            sprintf(filename,
+                    "/sys/bus/pci/devices/%04x:%02x:%02x.%d/graphics:fb%d",
+                    pPci->domain, pPci->bus, pPci->dev, pPci->func, i);
+            fd = open(filename, O_RDONLY, 0);
+        }
+	if (fd >= 0) {
 	    close(fd);
 	    sprintf(filename, "/dev/fb%d", i);
 

commit d78669c92d751464bc3c8f79f2aa21ca0951e3a9
Author: Keith Packard <keithp@keithp.com>
Date:   Tue Sep 22 12:09:48 2009 -0700

    render: return the supported version rather than just passing the proto's version
    
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/render/render.c b/render/render.c
index e3d76d2..d1020d5 100644
--- a/render/render.c
+++ b/render/render.c
@@ -54,6 +54,9 @@
 #define UINT32_MAX 0xffffffffU
 #endif
 
+#define SERVER_RENDER_MAJOR 0
+#define SERVER_RENDER_MINOR 10
+
 static int ProcRenderQueryVersion (ClientPtr pClient);
 static int ProcRenderQueryPictFormats (ClientPtr pClient);
 static int ProcRenderQueryPictIndexValues (ClientPtr pClient);
@@ -271,8 +274,8 @@ ProcRenderQueryVersion (ClientPtr client)
     rep.type = X_Reply;
     rep.length = 0;
     rep.sequenceNumber = client->sequence;


Reply to: