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

xorg-server: Changes to 'debian-experimental'



 ChangeLog                              |  238 +++++++++++++++++++++
 config/hal.c                           |   27 ++
 configure.ac                           |    5 
 debian/changelog                       |    3 
 exa/exa.h                              |    4 
 exa/exa_migration.c                    |    6 
 exa/exa_priv.h                         |    3 
 glx/glxdri.c                           |    2 
 glx/glxscreens.c                       |    2 
 hw/kdrive/src/kinput.c                 |    2 
 hw/kdrive/vesa/vm86.h                  |    7 
 hw/xfree86/common/Makefile.am          |    3 
 hw/xfree86/common/xf86.h               |    1 
 hw/xfree86/common/xf86Config.c         |   39 +++
 hw/xfree86/common/xf86Events.c         |  173 ---------------
 hw/xfree86/common/xf86Globals.c        |    1 
 hw/xfree86/common/xf86Helper.c         |    2 
 hw/xfree86/common/xf86Init.c           |  359 ++++++++++++++++++++-------------
 hw/xfree86/ddc/interpret_edid.c        |   10 
 hw/xfree86/doc/man/xorg.conf.man.pre   |    1 
 hw/xfree86/dri/dri.c                   |    2 
 hw/xfree86/os-support/linux/lnx_init.c |   52 ++++
 include/dix-config.h.in                |    6 
 include/os.h                           |    2 
 mi/mieq.c                              |    6 
 os/Makefile.am                         |    1 
 os/backtrace.c                         |  201 ++++++++++++++++++
 os/log.c                               |    1 
 randr/rrproperty.c                     |   44 +++-
 29 files changed, 870 insertions(+), 333 deletions(-)

New commits:
commit 55335c450ad117b1795dffbd77940b0b6b2c94ed
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Nov 5 23:03:10 2008 +0100

    update changelogs

diff --git a/ChangeLog b/ChangeLog
index 5b7377f..f4fbf87 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,241 @@
+commit 4c6a89ee783d62fb75a738339351830c35b19a38
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Wed Nov 5 15:39:01 2008 -0500
+
+    xserver 1.5.3
+
+commit b0c2d009852972f1b085ab5ce2271692dface27f
+Author: Julien Cristau <jcristau@debian.org>
+Date:   Sun Oct 26 13:13:21 2008 +0100
+
+    xfree86: fix compiler warnings in DoModalias()
+    
+    The precedence of == is higher than that of &, so that code was
+    probably buggy.
+    
+    xf86Init.c: In function 'DoModalias':
+    xf86Init.c:300: warning: suggest parentheses around comparison in operand of &
+    xf86Init.c:304: warning: suggest parentheses around comparison in operand of &
+    xf86Init.c:308: warning: suggest parentheses around comparison in operand of &
+    (cherry picked from commit ffaaa1a198a77eb6800c08d4613ee1cc0b068ba0)
+
+commit a311fdc04013c678eb506458d6a5d3376f107bf7
+Author: Nathaniel McCallum <nathaniel@natemccallum.com>
+Date:   Tue Oct 14 09:50:29 2008 -0400
+
+    Xorg: add -modalias option
+    
+    This scans the installed video drivers and prints a Linux-style modalias
+    listing of the devices each driver claims to support.
+
+commit b8fd8da1ad985988426d0269982751a70535e8d0
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date:   Tue Nov 4 11:27:53 2008 +0100
+
+    AIGLX: Reinstate call to driver texOffsetFinish hook.
+    
+    It was accidentally lost when factoring out __glXDRIdoReleaseTexImage, so this
+    is a regression fix and should probably be backported to server-1.5-branch.
+    (cherry picked from commit a4d62bbf215894bad8e19d99f7330c637d3d49e3)
+
+commit 377712dbfce73348ad7f2610df51a1a805536392
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Wed Nov 5 11:51:06 2008 -0500
+
+    linux: Drain the console fd of data when using evdev for keyboards
+    
+    Works around a silly bug in the kernel that causes wakeup storms after
+    too many keypresses.  Should fix the kernel bug too, but this at least
+    keeps the idle wakeup count below 1000/sec.
+    (cherry picked from commit 446d9443cea31e493d05c939d0128a8116788468)
+
+commit 3245bf113619500b7b6cae3a3f31ddd2984cbc05
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Thu Oct 16 11:22:29 2008 +1030
+
+    xfree86: If AEI is on, disable "kbd" and "mouse" devices.
+    
+    This consists of two parts:
+    In the implicit server layout, ignore those drivers when looking for a core
+    device.
+    
+    And after finishing the server layout, run through the list of devices and
+    remove any that use mouse or kbd.
+    
+    AEI is mutually exclusive with the kbd and mouse drivers, so pick either - or.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
+    (cherry picked from commit c264826da96ad1859dd112b17eb8aa9e5278478f)
+
+commit 58e6d6afe04189f3c88b9e1998247ff797607ccb
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Sun Oct 12 21:58:30 2008 +1030
+
+    xfree86: if AllowEmptyInput is true, enable RAW mode on the console.
+    
+    Usually, the console is set to RAW in the kbd driver. If we hotplug all input
+    devices (i.e. the evdev driver for keyboards) and the console is left as-is.
+    As a result, the evdev driver must put an EVIOCGRAB on the device to avoid
+    characters leaking onto the console. This again breaks many things, amongst
+    them lirc, in-kernel mouse button emulation and HAL.
+    
+    This patch sets the console to RAW if AllowEmptyInput is on.
+    
+    Use-cases:
+    1. AEI is off
+      1.1. Only kbd driver is used - behaviour as-is.
+      1.2. kbd and evdev driver is used: if evdev does not grab the device,
+           duplicate events are generated.
+    2. AEI is on
+      2.1. Only evdev driver is used - behaviour as-is, but evdev does not need
+           to grab the device anymore.
+      2.2. evdev and kbd are used: duplicate key events are generated if evdev
+           does not grab the device.
+    
+    1.2 is a marginal use-case that can be fixed by adding a "grab" option to the
+    evdev driver (update of xorg.conf is needed).
+    
+    2.2 is an issue. If we have no ServerLayout section, AEI is on, but devices
+    specified in the xorg.conf are still added [1], resulting in duplicate events.
+    This is a common configuration and needs sorting out.
+    
+    [1] 2eaed4a10fe5bf727579bca4ab8d4a47c8763a7d
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+    (cherry picked from commit d936a4235c9625bd41569cef3452dd086284e0d7)
+
+commit bc199fdf79a72275592d325dc034adccc6dd93af
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Mon Oct 20 12:19:55 2008 +1030
+
+    config: don't add duplicate devices through HAL.
+    
+    If HAL is restarted, the device list is sent to the server again, leading
+    first to duplicate devices (and thus duplicate events), and later to a
+    FatalError "Too many input devices."
+    
+    dev->config_info contains the UDI for the device. If the UDI of a new devices
+    is equal to one we already have in the device list, just ignore it.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
+    (cherry picked from commit 6c451859552e1fc78f6589617482f9ff96d7ed8a)
+
+commit e63ef549bb7a2591d99987c85f414c08dbbf9a6b
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date:   Tue Oct 21 22:32:57 2008 +0200
+
+    Close well known connections in ServerAbort()
+    (cherry picked from commit d72cd753b99fae147ef4c189700fc697f1ea7fb0)
+
+commit 5d14e345411dfe4b4fd334e4e54fbf24dcfa65bd
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Tue Oct 21 13:10:44 2008 -0400
+
+    exa: Add exaDrawableIsOffscreen() to the driver API.
+    
+    (cherry picked from commit 3891dd892449fcdb7a514e3c5e7e763ba7e74003)
+
+commit f4c33e2e64ce83c29c3bc79853e421247acfea11
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date:   Mon Oct 20 09:55:24 2008 -0400
+
+    EXA: Avoid excessive syncing in PutImage
+    (cherry picked from commit 2188582e5ea90edb432a2f421d0a267439ba08f9)
+
+commit df22857b34edb9f29ace3800ba99f14c7be8058e
+Author: Pierre Willenbrock <pierre@pirsoft.de>
+Date:   Thu Oct 16 14:28:14 2008 -0400
+
+    RANDR: Fix output property event delivery.
+    (cherry picked from commit 8de26770a41ec87c46eed2eddfde6f867d71fe1f)
+
+commit 42429aa3269d68bc7909616ce8b0d0b5ca5624d2
+Author: Keith Packard <keithp@keithp.com>
+Date:   Mon Oct 6 12:21:20 2008 -0400
+
+    RANDR: Delivery output property events.
+    (cherry picked from commit 9187f6ad9ec7ba9569a93d92561aac17eaa83491)
+
+commit b28c25b5aeecea22aba997e2b0d24e77a22b6e02
+Author: Rémi Cardona <remi@gentoo.org>
+Date:   Tue Oct 21 10:07:24 2008 -0400
+
+    Force LC_ALL=C when building xf86DefModeSet.c
+    
+    Fixes build in not-quite-latin locales.
+
+commit 992a7168f0db5733fe4a6cbd2f40c6b1f2a150e0
+Author: Martin von Gagern <Martin.vGagern@gmx.net>
+Date:   Wed Nov 5 11:44:03 2008 -0500
+
+    Bug #17858: Fix Xvesa build on newer kernels.
+    
+    Not cherry picked from master, Xvesa is gone there.
+
+commit ec5046ca7565e2364f42606b26159520a73dd207
+Author: Maarten Maathuis <madman2003@gmail.com>
+Date:   Fri Oct 10 23:23:02 2008 +0200
+
+    dri: don't set the dixPrivate key to NULL, as this is a staticly set variable.
+    
+    - This breaks on the 2nd server generation.
+    - No other subsystem seems to NULL their key.
+    - This should fix bug 17982.
+    (cherry picked from commit 5b336585a4cdf11d20831a9536ad581e959ea7f1)
+
+commit f75163e5f6fc6dd63ac4eb97e403086031230250
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Tue Oct 21 16:00:32 2008 -0400
+
+    Bug #18159: Spell "anisotropic" correctly
+    (cherry picked from commit 81e197b2a5457bb9f7ed72f82c2d33fd8dbfc202)
+
+commit b468eacf511de3c3f8b6a1abd9e38680947b464e
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Tue Oct 14 09:45:19 2008 -0400
+
+    kdrive: Hardcode a different wrong value for number of mouse buttons
+    
+    This should really come from the input driver directly, but, kdrive.
+    (cherry picked from commit 3eb52de7f28b0050582f9ac4c28bc894d3f06f4b)
+
+commit 19776ede8f10e0f59dbc50d93e51facbc4071877
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Tue Oct 14 13:00:50 2008 -0400
+
+    Add backtrace definitions to dix-config.h.in
+    (cherry picked from commit ad677238bc96a8578113bbe76d605d7a87aca44c)
+
+commit 483fb847b4363d09ff3347f61ad51bba1dd00602
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Fri Oct 10 16:33:24 2008 -0400
+
+    mieq: Backtrace when the queue overflows.
+    
+    Since we're probably stuck down in a driver somewhere, let's at least
+    try to point out where.  This will need to be rethought when the input
+    thread work lands though.
+    (cherry picked from commit b736f477f5324f79af30fc0f941ba0714a34ccda)
+
+commit 7df5e93cf52aad35509be9e6d8c25e399fba0c60
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Fri Oct 10 15:53:48 2008 -0400
+
+    Move xorg_backtrace() up to the OS level so we can call it from DIX.
+    (cherry picked from commit 94ed0ba1b5043ad9fc33b42756af447d5ab15bbd)
+
+commit aa548b0a9b4999f21630273261a8f5880dd24a7f
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Tue Oct 14 14:04:01 2008 -0400
+
+    EDID: Catch even more cases of encoding aspect as size.
+    
+    Very cute, Samsung, not only do you claim to be 16cm by 9cm in the
+    global size record, you also claim to be 160mm by 90mm in the detailed
+    timings.  Grrr.
+    (cherry picked from commit bd9c6b3a4d726a3f83ac6d8cf7211eddbc28f25a)
+
 commit 6dcfa994b0777bf0cabeb71672f13e650b340817
 Author: Adam Jackson <ajax@redhat.com>
 Date:   Fri Oct 10 15:26:32 2008 -0400
diff --git a/debian/changelog b/debian/changelog
index 581ab5a..4c1da27 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,11 @@
-xorg-server (2:1.5.2-2) UNRELEASED; urgency=low
+xorg-server (2:1.5.3-1) UNRELEASED; urgency=low
 
   [ Loic Minier ]
   * Shut up rmdir error when trying to remove dirs; this might confuse
     debconf.
 
   [ Julien Cristau ]
+  * New upstream release.
   * Fix infinite loop on server reset when swrast_dri.so is missing.  Only
     push swrast on the glx provider stack on first generation, so we don't
     turn the stack into a circular list (closes: #500287).

commit 4c6a89ee783d62fb75a738339351830c35b19a38
Author: Adam Jackson <ajax@redhat.com>
Date:   Wed Nov 5 15:39:01 2008 -0500

    xserver 1.5.3

diff --git a/configure.ac b/configure.ac
index 88749a5..de932f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,9 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.5.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="10 October 2008"
+AC_INIT([xorg-server], 1.5.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="5 November 2008"
+REMEMBER_REMEMBER="The Fifth of November"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE

commit b0c2d009852972f1b085ab5ce2271692dface27f
Author: Julien Cristau <jcristau@debian.org>
Date:   Sun Oct 26 13:13:21 2008 +0100

    xfree86: fix compiler warnings in DoModalias()
    
    The precedence of == is higher than that of &, so that code was
    probably buggy.
    
    xf86Init.c: In function 'DoModalias':
    xf86Init.c:300: warning: suggest parentheses around comparison in operand of &
    xf86Init.c:304: warning: suggest parentheses around comparison in operand of &
    xf86Init.c:308: warning: suggest parentheses around comparison in operand of &
    (cherry picked from commit ffaaa1a198a77eb6800c08d4613ee1cc0b068ba0)

diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 8b41d81..fc50caf 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -307,15 +307,15 @@ DoModalias()
                  ErrorF("sd%08X", match->subdevice_id);
 
              /* Class */
-             if (match->device_class_mask >> 16 & 0xFF == 0xFF)
+             if ((match->device_class_mask >> 16 & 0xFF) == 0xFF)
                  ErrorF("bc%02X", match->device_class >> 16 & 0xFF);
              else
                  ErrorF("bc*");
-             if (match->device_class_mask >> 8 & 0xFF == 0xFF)
+             if ((match->device_class_mask >> 8 & 0xFF) == 0xFF)
                  ErrorF("sc%02X", match->device_class >> 8 & 0xFF);
              else
                  ErrorF("sc*");
-             if (match->device_class_mask & 0xFF == 0xFF)
+             if ((match->device_class_mask & 0xFF) == 0xFF)
                  ErrorF("i%02X*", match->device_class & 0xFF);
              else
                  ErrorF("i*");

commit a311fdc04013c678eb506458d6a5d3376f107bf7
Author: Nathaniel McCallum <nathaniel@natemccallum.com>
Date:   Tue Oct 14 09:50:29 2008 -0400

    Xorg: add -modalias option
    
    This scans the installed video drivers and prints a Linux-style modalias
    listing of the devices each driver claims to support.

diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index 065102f..e915217 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -56,6 +56,7 @@
 
 /* General parameters */
 extern int xf86DoConfigure;
+extern Bool xf86DoModalias;
 extern Bool xf86DoConfigurePass1;
 extern DevPrivateKey xf86ScreenKey;
 extern DevPrivateKey xf86CreateRootWindowKey;
diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c
index 0dc42c6..f5babbc 100644
--- a/hw/xfree86/common/xf86Globals.c
+++ b/hw/xfree86/common/xf86Globals.c
@@ -149,6 +149,7 @@ Bool xf86Resetting = FALSE;
 Bool xf86Initialising = FALSE;
 Bool xf86DoProbe = FALSE;
 Bool xf86DoConfigure = FALSE;
+Bool xf86DoModalias = FALSE;
 DriverPtr *xf86DriverList = NULL;
 int xf86NumDrivers = 0;
 InputDriverPtr *xf86InputDriverList = NULL;
diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 475628b..282eb49 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -1486,6 +1486,8 @@ xf86MatchDevice(const char *drivername, GDevPtr **sectlist)
     if (sectlist)
 	*sectlist = NULL;
 
+    if (xf86DoModalias) return 0;
+
     if (xf86DoProbe) return 1;
 
     if (xf86DoConfigure && xf86DoConfigurePass1) return 1;
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 68dc387..8b41d81 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -131,6 +131,207 @@ static int numFormats = 6;
 #endif
 static Bool formatsDone = FALSE;
 
+#ifndef OSNAME
+#define OSNAME " unknown"
+#endif
+#ifndef OSVENDOR
+#define OSVENDOR ""
+#endif
+#ifndef PRE_RELEASE
+#define PRE_RELEASE XORG_VERSION_SNAP
+#endif
+
+static void
+xf86PrintBanner()
+{
+#if PRE_RELEASE
+  ErrorF("\n"
+    "This is a pre-release version of the X server from " XVENDORNAME ".\n"
+    "It is not supported in any way.\n"
+    "Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.\n";
+    "Select the \"xorg\" product for bugs you find in this release.\n"
+    "Before reporting bugs in pre-release versions please check the\n"
+    "latest version in the X.Org Foundation git repository.\n"
+    "See http://wiki.x.org/wiki/GitPage for git access instructions.\n");
+#endif
+  ErrorF("\nX.Org X Server %d.%d.%d",
+	 XORG_VERSION_MAJOR,
+	 XORG_VERSION_MINOR,
+	 XORG_VERSION_PATCH);
+#if XORG_VERSION_SNAP > 0
+  ErrorF(".%d", XORG_VERSION_SNAP);
+#endif
+
+#if XORG_VERSION_SNAP >= 900
+  /* When the minor number is 99, that signifies that the we are making
+   * a release candidate for a major version.  (X.0.0)
+   * When the patch number is 99, that signifies that the we are making
+   * a release candidate for a minor version.  (X.Y.0)
+   * When the patch number is < 99, then we are making a release
+   * candidate for the next point release.  (X.Y.Z)
+   */
+#if XORG_VERSION_MINOR >= 99
+  ErrorF(" (%d.0.0 RC %d)", XORG_VERSION_MAJOR+1, XORG_VERSION_SNAP - 900);
+#elif XORG_VERSION_PATCH == 99
+  ErrorF(" (%d.%d.0 RC %d)", XORG_VERSION_MAJOR, XORG_VERSION_MINOR + 1,
+				XORG_VERSION_SNAP - 900);
+#else
+  ErrorF(" (%d.%d.%d RC %d)", XORG_VERSION_MAJOR, XORG_VERSION_MINOR,
+ 			 XORG_VERSION_PATCH + 1, XORG_VERSION_SNAP - 900);
+#endif
+#endif
+
+#ifdef XORG_CUSTOM_VERSION
+  ErrorF(" (%s)", XORG_CUSTOM_VERSION);
+#endif
+#ifndef XORG_DATE
+#define XORG_DATE XF86_DATE
+#endif
+  ErrorF("\nRelease Date: %s\n", XORG_DATE);
+  ErrorF("X Protocol Version %d, Revision %d\n",
+         X_PROTOCOL, X_PROTOCOL_REVISION);
+  ErrorF("Build Operating System: %s %s\n", OSNAME, OSVENDOR);
+#ifdef HAS_UTSNAME
+  {
+    struct utsname name;
+
+    /* Linux & BSD state that 0 is success, SysV (including Solaris, HP-UX,
+       and Irix) and Single Unix Spec 3 just say that non-negative is success.
+       All agree that failure is represented by a negative number.
+     */
+    if (uname(&name) >= 0) {
+      ErrorF("Current Operating System: %s %s %s %s %s\n",
+	name.sysname, name.nodename, name.release, name.version, name.machine);
+    }
+  }
+#endif
+#if defined(BUILD_DATE) && (BUILD_DATE > 19000000)
+  {
+    struct tm t;
+    char buf[100];
+
+    bzero(&t, sizeof(t));
+    bzero(buf, sizeof(buf));
+    t.tm_mday = BUILD_DATE % 100;
+    t.tm_mon = (BUILD_DATE / 100) % 100 - 1;
+    t.tm_year = BUILD_DATE / 10000 - 1900;
+#if defined(BUILD_TIME)
+    t.tm_sec = BUILD_TIME % 100;
+    t.tm_min = (BUILD_TIME / 100) % 100;
+    t.tm_hour = (BUILD_TIME / 10000) % 100;
+    if (strftime(buf, sizeof(buf), "%d %B %Y  %I:%M:%S%p", &t))
+       ErrorF("Build Date: %s\n", buf);
+#else
+    if (strftime(buf, sizeof(buf), "%d %B %Y", &t))
+       ErrorF("Build Date: %s\n", buf);
+#endif
+  }
+#endif
+#if defined(CLOG_DATE) && (CLOG_DATE > 19000000)
+  {
+    struct tm t;
+    char buf[100];
+
+    bzero(&t, sizeof(t));
+    bzero(buf, sizeof(buf));
+    t.tm_mday = CLOG_DATE % 100;
+    t.tm_mon = (CLOG_DATE / 100) % 100 - 1;
+    t.tm_year = CLOG_DATE / 10000 - 1900;
+    if (strftime(buf, sizeof(buf), "%d %B %Y", &t))
+       ErrorF("Changelog Date: %s\n", buf);
+  }
+#endif
+#if defined(BUILDERSTRING)
+  ErrorF("%s \n",BUILDERSTRING);
+#endif
+  ErrorF("\tBefore reporting problems, check "__VENDORDWEBSUPPORT__"\n"
+	 "\tto make sure that you have the latest version.\n");
+}
+
+static void
+xf86PrintMarkers()
+{
+  LogPrintMarkers();
+}
+
+static void
+DoModalias()
+{
+    int i = -1;
+    char **vlist;
+
+    /* Get all the drivers */
+    vlist = xf86DriverlistFromCompile();
+    if (!vlist) {
+	ErrorF("Missing output drivers.  PCI Access dump failed.\n");
+	goto bail;
+    }
+
+    /* Load all the drivers that were found. */
+    xf86LoadModules(vlist, NULL);
+
+    xfree(vlist);
+
+    /* Iterate through each driver */
+    for (i = 0; i < xf86NumDrivers; i++) {
+        struct pci_id_match *match;
+
+        /* Iterate through each pci id match data, dumping it to the screen */
+        for (match = (struct pci_id_match *) xf86DriverList[i]->supported_devices ;
+                 match && !(!match->vendor_id && !match->device_id) ; match++) {
+             /* Prefix */
+             ErrorF("alias pci:");
+
+             /* Vendor */
+             if (match->vendor_id == ~0)
+                 ErrorF("v*");
+             else
+                 ErrorF("v%08X", match->vendor_id);
+
+             /* Device */
+             if (match->device_id == ~0)
+                 ErrorF("d*");
+             else
+                 ErrorF("d%08X", match->device_id);
+
+             /* Subvendor */
+             if (match->subvendor_id == ~0)
+                 ErrorF("sv*");
+             else
+                 ErrorF("sv%08X", match->subvendor_id);
+
+             /* Subdevice */
+             if (match->subdevice_id == ~0)
+                 ErrorF("sd*");
+             else
+                 ErrorF("sd%08X", match->subdevice_id);
+
+             /* Class */
+             if (match->device_class_mask >> 16 & 0xFF == 0xFF)
+                 ErrorF("bc%02X", match->device_class >> 16 & 0xFF);
+             else
+                 ErrorF("bc*");
+             if (match->device_class_mask >> 8 & 0xFF == 0xFF)
+                 ErrorF("sc%02X", match->device_class >> 8 & 0xFF);
+             else
+                 ErrorF("sc*");
+             if (match->device_class_mask & 0xFF == 0xFF)
+                 ErrorF("i%02X*", match->device_class & 0xFF);
+             else
+                 ErrorF("i*");
+
+             /* Suffix (driver) */
+             ErrorF(" %s\n", xf86DriverList[i]->driverName);
+        }
+    }
+
+bail:
+    OsCleanup(TRUE);
+    AbortDDX();
+    fflush(stderr);
+    exit(0);
+}
+
 static Bool
 xf86CreateRootWindow(WindowPtr pWin)
 {
@@ -488,19 +689,21 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
     else
       xf86ServerName = argv[0];
 
-    xf86PrintBanner();
-    xf86PrintMarkers();
-    if (xf86LogFile)  {
-	time_t t;
-	const char *ct;
-	t = time(NULL);
-	ct = ctime(&t);
-	xf86MsgVerb(xf86LogFileFrom, 0, "Log file: \"%s\", Time: %s",
-		    xf86LogFile, ct);
+    if (!xf86DoModalias) {
+	xf86PrintBanner();
+	xf86PrintMarkers();
+	if (xf86LogFile)  {
+	    time_t t;
+	    const char *ct;
+	    t = time(NULL);
+	    ct = ctime(&t);
+	    xf86MsgVerb(xf86LogFileFrom, 0, "Log file: \"%s\", Time: %s",
+			xf86LogFile, ct);
+	}
     }
 
     /* Read and parse the config file */
-    if (!xf86DoProbe && !xf86DoConfigure) {
+    if (!xf86DoProbe && !xf86DoConfigure && !xf86DoModalias) {
       switch (xf86HandleConfigFile(FALSE)) {
       case CONFIG_OK:
 	break;
@@ -537,6 +740,10 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
     if (xf86DoConfigure)
 	DoConfigure();
 
+    /* Do the PCI Access dump */
+    if (xf86DoModalias)
+        DoModalias();
+
     if (autoconfig) {
 	if (!xf86AutoConfig()) {
 	    xf86Msg(X_ERROR, "Auto configuration failed\n");
@@ -1678,6 +1885,12 @@ ddxProcessArgument(int argc, char **argv, int i)
     xf86AllowMouseOpenFail = TRUE;
     return 1;
   }
+  if (!strcmp(argv[i], "-modalias"))
+  {
+    xf86DoModalias = TRUE;
+    xf86AllowMouseOpenFail = TRUE;
+    return 1;
+  }
   if (!strcmp(argv[i], "-isolateDevice"))
   {
     int bus, device, func;
@@ -1722,6 +1935,7 @@ ddxUseMsg()
     ErrorF("-logfile file          specify a log file name\n");
     ErrorF("-configure             probe for devices and write an "__XCONFIGFILE__"\n");
   }
+  ErrorF("-modalias              output a modalias-style filter for each driver installed\n");
   ErrorF("-config file           specify a configuration file, relative to the\n");
   ErrorF("                       "__XCONFIGFILE__" search path, only root can use absolute\n");
   ErrorF("-probeonly             probe for devices, then exit\n");
@@ -1764,131 +1978,6 @@ ddxUseMsg()
   ErrorF("\n");
 }
 
-
-#ifndef OSNAME
-#define OSNAME " unknown"
-#endif
-#ifndef OSVENDOR
-#define OSVENDOR ""
-#endif
-#ifndef PRE_RELEASE
-#define PRE_RELEASE XORG_VERSION_SNAP
-#endif
-
-static void
-xf86PrintBanner()
-{
-#if PRE_RELEASE
-  ErrorF("\n"
-    "This is a pre-release version of the X server from " XVENDORNAME ".\n"
-    "It is not supported in any way.\n"
-    "Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.\n";
-    "Select the \"xorg\" product for bugs you find in this release.\n"
-    "Before reporting bugs in pre-release versions please check the\n"
-    "latest version in the X.Org Foundation git repository.\n"
-    "See http://wiki.x.org/wiki/GitPage for git access instructions.\n");
-#endif
-  ErrorF("\nX.Org X Server %d.%d.%d",
-	 XORG_VERSION_MAJOR,
-	 XORG_VERSION_MINOR,
-	 XORG_VERSION_PATCH);
-#if XORG_VERSION_SNAP > 0
-  ErrorF(".%d", XORG_VERSION_SNAP);
-#endif
-
-#if XORG_VERSION_SNAP >= 900
-  /* When the minor number is 99, that signifies that the we are making
-   * a release candidate for a major version.  (X.0.0)
-   * When the patch number is 99, that signifies that the we are making
-   * a release candidate for a minor version.  (X.Y.0)
-   * When the patch number is < 99, then we are making a release
-   * candidate for the next point release.  (X.Y.Z)
-   */
-#if XORG_VERSION_MINOR >= 99
-  ErrorF(" (%d.0.0 RC %d)", XORG_VERSION_MAJOR+1, XORG_VERSION_SNAP - 900);
-#elif XORG_VERSION_PATCH == 99
-  ErrorF(" (%d.%d.0 RC %d)", XORG_VERSION_MAJOR, XORG_VERSION_MINOR + 1,
-				XORG_VERSION_SNAP - 900);
-#else
-  ErrorF(" (%d.%d.%d RC %d)", XORG_VERSION_MAJOR, XORG_VERSION_MINOR,
- 			 XORG_VERSION_PATCH + 1, XORG_VERSION_SNAP - 900);
-#endif
-#endif
-
-#ifdef XORG_CUSTOM_VERSION
-  ErrorF(" (%s)", XORG_CUSTOM_VERSION);
-#endif
-#ifndef XORG_DATE
-#define XORG_DATE XF86_DATE
-#endif
-  ErrorF("\nRelease Date: %s\n", XORG_DATE);
-  ErrorF("X Protocol Version %d, Revision %d\n",
-         X_PROTOCOL, X_PROTOCOL_REVISION);
-  ErrorF("Build Operating System: %s %s\n", OSNAME, OSVENDOR);
-#ifdef HAS_UTSNAME
-  {
-    struct utsname name;
-
-    /* Linux & BSD state that 0 is success, SysV (including Solaris, HP-UX,
-       and Irix) and Single Unix Spec 3 just say that non-negative is success.
-       All agree that failure is represented by a negative number.
-     */
-    if (uname(&name) >= 0) {
-      ErrorF("Current Operating System: %s %s %s %s %s\n",
-	name.sysname, name.nodename, name.release, name.version, name.machine);
-    }
-  }
-#endif
-#if defined(BUILD_DATE) && (BUILD_DATE > 19000000)
-  {
-    struct tm t;
-    char buf[100];
-
-    bzero(&t, sizeof(t));
-    bzero(buf, sizeof(buf));
-    t.tm_mday = BUILD_DATE % 100;
-    t.tm_mon = (BUILD_DATE / 100) % 100 - 1;
-    t.tm_year = BUILD_DATE / 10000 - 1900;
-#if defined(BUILD_TIME)
-    t.tm_sec = BUILD_TIME % 100;
-    t.tm_min = (BUILD_TIME / 100) % 100;
-    t.tm_hour = (BUILD_TIME / 10000) % 100;
-    if (strftime(buf, sizeof(buf), "%d %B %Y  %I:%M:%S%p", &t))
-       ErrorF("Build Date: %s\n", buf);
-#else
-    if (strftime(buf, sizeof(buf), "%d %B %Y", &t))
-       ErrorF("Build Date: %s\n", buf);
-#endif
-  }
-#endif
-#if defined(CLOG_DATE) && (CLOG_DATE > 19000000)
-  {
-    struct tm t;
-    char buf[100];
-
-    bzero(&t, sizeof(t));
-    bzero(buf, sizeof(buf));
-    t.tm_mday = CLOG_DATE % 100;
-    t.tm_mon = (CLOG_DATE / 100) % 100 - 1;
-    t.tm_year = CLOG_DATE / 10000 - 1900;
-    if (strftime(buf, sizeof(buf), "%d %B %Y", &t))
-       ErrorF("Changelog Date: %s\n", buf);
-  }
-#endif
-#if defined(BUILDERSTRING)
-  ErrorF("%s \n",BUILDERSTRING);
-#endif
-  ErrorF("\tBefore reporting problems, check "__VENDORDWEBSUPPORT__"\n"
-	 "\tto make sure that you have the latest version.\n");
-  ErrorF("Module Loader present\n");
-}
-
-static void
-xf86PrintMarkers()
-{
-  LogPrintMarkers();
-}
-
 static void
 xf86PrintDefaultModulePath(void)
 {

commit b8fd8da1ad985988426d0269982751a70535e8d0
Author: Michel Dänzer <michel@tungstengraphics.com>
Date:   Tue Nov 4 11:27:53 2008 +0100

    AIGLX: Reinstate call to driver texOffsetFinish hook.
    
    It was accidentally lost when factoring out __glXDRIdoReleaseTexImage, so this
    is a regression fix and should probably be backported to server-1.5-branch.
    (cherry picked from commit a4d62bbf215894bad8e19d99f7330c637d3d49e3)

diff --git a/glx/glxdri.c b/glx/glxdri.c
index a87ff13..52a97d4 100644
--- a/glx/glxdri.c
+++ b/glx/glxdri.c
@@ -189,6 +189,8 @@ __glXDRIdoReleaseTexImage(__GLXDRIscreen *screen, __GLXDRIdrawable *drawable)
 
 	for (i = 0; i < lastOverride; i++) {
 	    if (texOffsetOverride[i] == drawable) {
+		if (screen->texOffsetFinish)
+		    screen->texOffsetFinish((PixmapPtr)drawable->base.pDraw);
 
 		texOffsetOverride[i] = NULL;
 

commit 377712dbfce73348ad7f2610df51a1a805536392
Author: Adam Jackson <ajax@redhat.com>
Date:   Wed Nov 5 11:51:06 2008 -0500

    linux: Drain the console fd of data when using evdev for keyboards
    
    Works around a silly bug in the kernel that causes wakeup storms after
    too many keypresses.  Should fix the kernel bug too, but this at least
    keeps the idle wakeup count below 1000/sec.
    (cherry picked from commit 446d9443cea31e493d05c939d0128a8116788468)

diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
index 6f68ba5..da5ca57 100644
--- a/hw/xfree86/os-support/linux/lnx_init.c
+++ b/hw/xfree86/os-support/linux/lnx_init.c
@@ -85,6 +85,14 @@ restoreVtPerms(void)
     chown(vtname, vtPermSave[2], vtPermSave[3]);
 }
 
+static void *console_handler;
+
+static void
+drain_console(int fd, void *closure)
+{
+    tcflush(fd, TCIOFLUSH);
+}
+
 void
 xf86OpenConsole(void)
 {
@@ -300,6 +308,10 @@ xf86OpenConsole(void)
 		cfsetispeed(&nTty, 9600);
 		cfsetospeed(&nTty, 9600);
 		tcsetattr(xf86Info.consoleFd, TCSANOW, &nTty);
+
+		/* need to keep the buffer clean, else the kernel gets angry */
+		console_handler = xf86AddGeneralHandler(xf86Info.consoleFd,
+							drain_console, NULL);
 	    }
 
 	    /* we really should have a InitOSInputDevices() function instead
@@ -346,6 +358,11 @@ xf86CloseConsole()
 
     if (ShareVTs) return;
 
+    if (console_handler) {
+	xf86RemoveGeneralHandler(console_handler);
+	console_handler = NULL;
+    };
+
 #if defined(DO_OS_FONTRESTORE)
     if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts) < 0)
 	xf86Msg(X_WARNING, "xf86CloseConsole: VT_GETSTATE failed: %s\n",

commit 3245bf113619500b7b6cae3a3f31ddd2984cbc05
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Thu Oct 16 11:22:29 2008 +1030

    xfree86: If AEI is on, disable "kbd" and "mouse" devices.
    
    This consists of two parts:
    In the implicit server layout, ignore those drivers when looking for a core
    device.
    
    And after finishing the server layout, run through the list of devices and
    remove any that use mouse or kbd.
    
    AEI is mutually exclusive with the kbd and mouse drivers, so pick either - or.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
    (cherry picked from commit c264826da96ad1859dd112b17eb8aa9e5278478f)

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index a1c2e34..e91eadd 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -1340,7 +1340,7 @@ checkCoreInputDevices(serverLayoutPtr servlayoutp, Bool implicitLayout)
     }
 
     /* 4. First pointer with 'mouse' as the driver. */
-    if (!foundPointer && (!xf86Info.allowEmptyInput || implicitLayout)) {
+    if (!foundPointer && !xf86Info.allowEmptyInput) {
 	confInput = xf86findInput(CONF_IMPLICIT_POINTER,
 				  xf86configptr->conf_input_lst);
 	if (!confInput) {
@@ -1480,7 +1480,7 @@ checkCoreInputDevices(serverLayoutPtr servlayoutp, Bool implicitLayout)
     }
 
     /* 4. First keyboard with 'keyboard' or 'kbd' as the driver. */
-    if (!foundKeyboard && (!xf86Info.allowEmptyInput || implicitLayout)) {
+    if (!foundKeyboard && !xf86Info.allowEmptyInput) {
 	confInput = xf86findInput(CONF_IMPLICIT_KEYBOARD,
 				  xf86configptr->conf_input_lst);
 	if (!confInput) {
@@ -2481,6 +2481,41 @@ addDefaultModes(MonPtr monitorp)
 static void
 checkInput(serverLayoutPtr layout, Bool implicit_layout) {
     checkCoreInputDevices(layout, implicit_layout);
+
+    /* AllowEmptyInput and the "kbd" and "mouse" drivers are mutually
+     * exclusive. Trawl the list for mouse/kbd devices and disable them.
+     */
+    if (xf86Info.allowEmptyInput && layout->inputs)
+    {
+        IDevPtr *dev = layout->inputs;
+        BOOL warned = FALSE;
+
+        while(*dev)
+        {
+            if (strcmp((*dev)->driver, "kbd") == 0 ||
+                strcmp((*dev)->driver, "mouse") == 0)
+            {
+                IDevPtr *current;
+                if (!warned)
+                {
+                    xf86Msg(X_WARNING, "AllowEmptyInput is on, devices using "
+                            "drivers 'kbd' or 'mouse' will be disabled.\n");
+                    warned = TRUE;
+                }
+
+                xf86Msg(X_WARNING, "Disabling %s\n", (*dev)->identifier);
+
+                current = dev;
+                xfree(*dev);
+
+                do {
+                    *current = *(current + 1);
+                    current++;
+                } while(*current);
+            } else
+                dev++;
+        }
+    }
 }
 
 /*
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 74f8cef..de93aaf 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -698,6 +698,7 @@ the X server to load. Disabled by default.
 If enabled, don't add the standard keyboard and mouse drivers, if there are no
 input devices in the config file.  Enabled by default if AutoAddDevices and
 AutoEnableDevices is enabled, otherwise disabled.
+If AllowEmptyInput is on, devices using the kbd or mouse driver are ignored.
 .TP 7
 .BI "Option \*qAutoAddDevices\*q \*q" boolean \*q
 If this option is disabled, then no devices will be added from HAL events.

commit 58e6d6afe04189f3c88b9e1998247ff797607ccb
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Sun Oct 12 21:58:30 2008 +1030

    xfree86: if AllowEmptyInput is true, enable RAW mode on the console.
    
    Usually, the console is set to RAW in the kbd driver. If we hotplug all input
    devices (i.e. the evdev driver for keyboards) and the console is left as-is.


Reply to: