xserver: Branch 'master' - 9 commits

Keith Packard keithp at kemper.freedesktop.org
Sun Mar 27 18:31:41 PDT 2011


 Xi/chgdctl.c                   |   72 +--------------------------------------
 Xi/exevents.c                  |   24 -------------
 Xi/getdctl.c                   |   75 -----------------------------------------
 Xi/stubs.c                     |   12 ------
 config/udev.c                  |    4 ++
 dix/devices.c                  |   32 ++---------------
 hw/kdrive/src/kinput.c         |    3 -
 hw/xfree86/common/xf86Xinput.c |    6 ++-
 hw/xquartz/darwin.c            |    2 -
 hw/xquartz/darwinXinput.c      |   12 ------
 include/input.h                |    5 ++
 include/inputstr.h             |   25 +------------
 test/Makefile.am               |    4 +-
 test/xi2/Makefile.am           |    4 +-
 14 files changed, 28 insertions(+), 252 deletions(-)

New commits:
commit a22486f848014000dc13dda470f77d4d8ea9e9f6
Merge: 2ef4ff4... 633b81e...
Author: Keith Packard <keithp at keithp.com>
Date:   Sun Mar 27 18:27:10 2011 -0700

    Merge remote-tracking branch 'whot/for-keith'

commit 633b81e8ba09cc6a1ea8b43f323874fda2cf0bde
Author: Simon Thum <simon.thum at gmx.de>
Date:   Wed Mar 9 20:48:22 2011 +0100

    xserver: remove AbsoluteClassRec keeping the ABI
    
    This removes the struct, but keeps InitAbsoluteClassDeviceStruct as
    a no-op and preserves related struct layout.
    
    Signed-off-by: Simon Thum <simon.thum at gmx.de>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/Xi/chgdctl.c b/Xi/chgdctl.c
index 901a0e4..4c4aeba 100644
--- a/Xi/chgdctl.c
+++ b/Xi/chgdctl.c
@@ -76,8 +76,6 @@ SProcXChangeDeviceControl(ClientPtr client)
 {
     char n;
     xDeviceCtl *ctl;
-    xDeviceAbsCalibCtl *calib;
-    xDeviceAbsAreaCtl *area;
 
     REQUEST(xChangeDeviceControlReq);
     swaps(&stuff->length, n);
@@ -88,26 +86,7 @@ SProcXChangeDeviceControl(ClientPtr client)
     swaps(&ctl->length, n);
     switch(stuff->control) {
         case DEVICE_ABS_CALIB:
-            calib = (xDeviceAbsCalibCtl*)ctl;
-            swaps(&calib->length, n);
-            swapl(&calib->min_x, n);
-            swapl(&calib->max_x, n);
-            swapl(&calib->min_y, n);
-            swapl(&calib->max_y, n);
-            swapl(&calib->flip_x, n);
-            swapl(&calib->flip_y, n);
-            swapl(&calib->rotation, n);
-            swapl(&calib->button_threshold, n);
-            break;
         case DEVICE_ABS_AREA:
-            area = (xDeviceAbsAreaCtl*)ctl;
-            swapl(&area->offset_x, n);
-            swapl(&area->offset_y, n);
-            swapl(&area->width, n);
-            swapl(&area->height, n);
-            swapl(&area->screen, n);
-            swapl(&area->following, n);
-            break;
         case DEVICE_CORE:
         case DEVICE_ENABLE:
         case DEVICE_RESOLUTION:
@@ -134,8 +113,6 @@ ProcXChangeDeviceControl(ClientPtr client)
     xChangeDeviceControlReply rep;
     AxisInfoPtr a;
     CARD32 *resolution;
-    xDeviceAbsCalibCtl *calib;
-    xDeviceAbsAreaCtl *area;
     xDeviceEnableCtl *e;
     devicePresenceNotify dpn;
 
@@ -193,53 +170,10 @@ ProcXChangeDeviceControl(ClientPtr client)
 	}
 	break;
     case DEVICE_ABS_CALIB:
-        calib = (xDeviceAbsCalibCtl *)&stuff[1];
-
-        if (calib->button_threshold < 0 || calib->button_threshold > 255) {
-            ret = BadValue;
-            goto out;
-        }
-
-        status = ChangeDeviceControl(client, dev, (xDeviceCtl *) calib);
-
-        if (status == Success) {
-            dev->absolute->min_x = calib->min_x;
-            dev->absolute->max_x = calib->max_x;
-            dev->absolute->min_y = calib->min_y;
-            dev->absolute->max_y = calib->max_y;
-            dev->absolute->flip_x = calib->flip_x;
-            dev->absolute->flip_y = calib->flip_y;
-            dev->absolute->rotation = calib->rotation;
-            dev->absolute->button_threshold = calib->button_threshold;
-            ret = Success;
-        } else if (status == DeviceBusy || status == BadValue) {
-            rep.status = status;
-            ret = Success;
-        } else {
-            ret = BadMatch;
-        }
-
-        break;
     case DEVICE_ABS_AREA:
-        area = (xDeviceAbsAreaCtl *)&stuff[1];
-
-        status = ChangeDeviceControl(client, dev, (xDeviceCtl *) area);
-
-        if (status == Success) {
-            dev->absolute->offset_x = area->offset_x;
-            dev->absolute->offset_y = area->offset_y;
-            dev->absolute->width = area->width;
-            dev->absolute->height = area->height;
-            dev->absolute->screen = area->screen;
-            dev->absolute->following = area->following;
-            ret = Success;
-        } else if (status == DeviceBusy || status == BadValue) {
-            rep.status = status;
-            ret = Success;
-        } else {
-            ret = Success;
-        }
-
+        /* Calibration is now done through properties, and never had any effect
+         * on anything (in the open-source world). Thus, be honest. */
+        ret = BadMatch;
         break;
     case DEVICE_CORE:
         /* Sorry, no device core switching no more. If you want a device to
diff --git a/Xi/exevents.c b/Xi/exevents.c
index c7089bb..5b207bc 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -626,30 +626,6 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
         classes->proximity = to->proximity;
         to->proximity      = NULL;
     }
-
-    if (from->absolute)
-    {
-        if (!to->absolute)
-        {
-            classes = to->unused_classes;
-            to->absolute = classes->absolute;
-            if (!to->absolute)
-            {
-                to->absolute = calloc(1, sizeof(AbsoluteClassRec));
-                if (!to->absolute)
-                    FatalError("[Xi] no memory for class shift.\n");
-            } else
-                classes->absolute = NULL;
-        }
-        memcpy(to->absolute, from->absolute, sizeof(AbsoluteClassRec));
-        to->absolute->sourceid = from->id;
-    } else if (to->absolute)
-    {
-        ClassesPtr classes;
-        classes = to->unused_classes;
-        classes->absolute = to->absolute;
-        to->absolute      = NULL;
-    }
 }
 
 /**
diff --git a/Xi/getdctl.c b/Xi/getdctl.c
index 3e81e94..4e04b8b 100644
--- a/Xi/getdctl.c
+++ b/Xi/getdctl.c
@@ -118,64 +118,6 @@ CopySwapDeviceResolution(ClientPtr client, ValuatorClassPtr v, char *buf,
     }
 }
 
-static void CopySwapDeviceAbsCalib (ClientPtr client, AbsoluteClassPtr dts,
-                                char *buf)
-{
-    char n;
-    xDeviceAbsCalibState *calib = (xDeviceAbsCalibState *) buf;
-
-    calib->control = DEVICE_ABS_CALIB;
-    calib->length = sizeof(xDeviceAbsCalibState);
-    calib->min_x = dts->min_x;
-    calib->max_x = dts->max_x;
-    calib->min_y = dts->min_y;
-    calib->max_y = dts->max_y;
-    calib->flip_x = dts->flip_x;
-    calib->flip_y = dts->flip_y;
-    calib->rotation = dts->rotation;
-    calib->button_threshold = dts->button_threshold;
-
-    if (client->swapped) {
-        swaps(&calib->control, n);
-        swaps(&calib->length, n);
-        swapl(&calib->min_x, n);
-        swapl(&calib->max_x, n);
-        swapl(&calib->min_y, n);
-        swapl(&calib->max_y, n);
-        swapl(&calib->flip_x, n);
-        swapl(&calib->flip_y, n);
-        swapl(&calib->rotation, n);
-        swapl(&calib->button_threshold, n);
-    }
-}
-
-static void CopySwapDeviceAbsArea (ClientPtr client, AbsoluteClassPtr dts,
-                                char *buf)
-{
-    char n;
-    xDeviceAbsAreaState *area = (xDeviceAbsAreaState *) buf;
-
-    area->control = DEVICE_ABS_AREA;
-    area->length = sizeof(xDeviceAbsAreaState);
-    area->offset_x = dts->offset_x;
-    area->offset_y = dts->offset_y;
-    area->width = dts->width;
-    area->height = dts->height;
-    area->screen = dts->screen;
-    area->following = dts->following;
-
-    if (client->swapped) {
-        swaps(&area->control, n);
-        swaps(&area->length, n);
-        swapl(&area->offset_x, n);
-        swapl(&area->offset_y, n);
-        swapl(&area->width, n);
-        swapl(&area->height, n);
-        swapl(&area->screen, n);
-        swapl(&area->following, n);
-    }
-}
-
 static void CopySwapDeviceCore (ClientPtr client, DeviceIntPtr dev, char *buf)
 {
     char n;
@@ -260,17 +202,8 @@ ProcXGetDeviceControl(ClientPtr client)
 	    (3 * sizeof(int) * dev->valuator->numAxes);
 	break;
     case DEVICE_ABS_CALIB:
-        if (!dev->absolute)
-	    return BadMatch;
-
-        total_length = sizeof(xDeviceAbsCalibState);
-        break;
     case DEVICE_ABS_AREA:
-        if (!dev->absolute)
-	    return BadMatch;
-
-        total_length = sizeof(xDeviceAbsAreaState);
-        break;
+        return BadMatch;
     case DEVICE_CORE:
         total_length = sizeof(xDeviceCoreState);
         break;
@@ -290,12 +223,6 @@ ProcXGetDeviceControl(ClientPtr client)
     case DEVICE_RESOLUTION:
 	CopySwapDeviceResolution(client, dev->valuator, buf, total_length);
 	break;
-    case DEVICE_ABS_CALIB:
-        CopySwapDeviceAbsCalib(client, dev->absolute, buf);
-        break;
-    case DEVICE_ABS_AREA:
-        CopySwapDeviceAbsArea(client, dev->absolute, buf);
-        break;
     case DEVICE_CORE:
         CopySwapDeviceCore(client, dev, buf);
         break;
diff --git a/dix/devices.c b/dix/devices.c
index 636b1b6..534931c 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -1336,34 +1336,10 @@ InitPointerAccelerationScheme(DeviceIntPtr dev,
 Bool
 InitAbsoluteClassDeviceStruct(DeviceIntPtr dev)
 {
-    AbsoluteClassPtr abs;
-
-    abs = malloc(sizeof(AbsoluteClassRec));
-    if (!abs)
-        return FALSE;
-
-    /* we don't do anything sensible with these, but should */
-    abs->min_x = NO_AXIS_LIMITS;
-    abs->min_y = NO_AXIS_LIMITS;
-    abs->max_x = NO_AXIS_LIMITS;
-    abs->max_y = NO_AXIS_LIMITS;
-    abs->flip_x = 0;
-    abs->flip_y = 0;
-    abs->rotation = 0;
-    abs->button_threshold = 0;
-
-    abs->offset_x = 0;
-    abs->offset_y = 0;
-    abs->width = NO_AXIS_LIMITS;
-    abs->height = NO_AXIS_LIMITS;
-    abs->following = 0;
-    abs->screen = 0;
-
-    abs->sourceid = dev->id;
-
-    dev->absolute = abs;
-
-    return TRUE;
+    /* This is an API-preserving noop. Instructions: Kill when no more drivers
+     * call it. The infrastructure behind hasn't really been used, so any calls
+     * are likely just a declaration that the device is absolute. */
+    return FALSE;
 }
 
 Bool
diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 3e6c2bc..e3bc4c5 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -477,7 +477,6 @@ KdPointerProc(DeviceIntPtr pDevice, int onoff)
         free(axes_labels);
 
         if (pi->inputClass == KD_TOUCHSCREEN) {
-            InitAbsoluteClassDeviceStruct(pDevice);
             xiclass = AtomFromName(XI_TOUCHSCREEN);
         }
         else {
diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
index 93697a9..33276c3 100644
--- a/hw/xquartz/darwin.c
+++ b/hw/xquartz/darwin.c
@@ -314,7 +314,6 @@ static int DarwinMouseProc(DeviceIntPtr pPointer, int what) {
                                     (PtrCtrlProcPtr)NoopDDA,
                                     GetMotionHistorySize(), NAXES,
                                     axes_labels);
-            InitAbsoluteClassDeviceStruct(pPointer);
 //            InitValuatorAxisStruct(pPointer, 0, 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
 //            InitValuatorAxisStruct(pPointer, 1, 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
             break;
@@ -362,7 +361,6 @@ static int DarwinTabletProc(DeviceIntPtr pPointer, int what) {
                                     GetMotionHistorySize(), NAXES,
                                     axes_labels);
             InitProximityClassDeviceStruct(pPointer);
-			InitAbsoluteClassDeviceStruct(pPointer);
 
             InitValuatorAxisStruct(pPointer, 0, axes_labels[0], 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
             InitValuatorAxisStruct(pPointer, 1, axes_labels[1], 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
diff --git a/include/input.h b/include/input.h
index bdef038..2bb85ff 100644
--- a/include/input.h
+++ b/include/input.h
@@ -311,7 +311,10 @@ extern _X_EXPORT Bool InitPointerAccelerationScheme(
     DeviceIntPtr /*dev*/,
     int /*scheme*/);
 
-extern _X_EXPORT Bool InitAbsoluteClassDeviceStruct(
+/**
+ * This is not implemented and just returns FALSE.
+ */
+extern _X_EXPORT _X_DEPRECATED Bool InitAbsoluteClassDeviceStruct(
     DeviceIntPtr /*device*/);
 
 extern _X_EXPORT Bool InitFocusClassDeviceStruct(
diff --git a/include/inputstr.h b/include/inputstr.h
index 8509eb0..f63df80 100644
--- a/include/inputstr.h
+++ b/include/inputstr.h
@@ -317,27 +317,6 @@ typedef struct _ProximityClassRec {
     char	in_proximity;
 } ProximityClassRec, *ProximityClassPtr;
 
-typedef struct _AbsoluteClassRec {
-    int         sourceid;
-    /* Calibration. */
-    int         min_x;
-    int         max_x;
-    int         min_y;
-    int         max_y;
-    int         flip_x;
-    int         flip_y;
-    int		rotation;
-    int         button_threshold;
-
-    /* Area. */
-    int         offset_x;
-    int         offset_y;
-    int         width;
-    int         height;
-    int         screen;
-    XID		following;
-} AbsoluteClassRec, *AbsoluteClassPtr;
-
 typedef struct _KbdFeedbackClassRec *KbdFeedbackPtr;
 typedef struct _PtrFeedbackClassRec *PtrFeedbackPtr;
 typedef struct _IntegerFeedbackClassRec *IntegerFeedbackPtr;
@@ -392,7 +371,7 @@ typedef struct _ClassesRec {
     ButtonClassPtr	button;
     FocusClassPtr	focus;
     ProximityClassPtr	proximity;
-    AbsoluteClassPtr    absolute;
+    void*               _pad0; /* keep ABI during AbsoluteClass removal */
     KbdFeedbackPtr	kbdfeed;
     PtrFeedbackPtr	ptrfeed;
     IntegerFeedbackPtr	intfeed;
@@ -517,7 +496,7 @@ typedef struct _DeviceIntRec {
     ButtonClassPtr	button;
     FocusClassPtr	focus;
     ProximityClassPtr	proximity;
-    AbsoluteClassPtr    absolute;
+    void*               _pad0;          /* keep ABI, was pointer to abs class */
     KbdFeedbackPtr	kbdfeed;
     PtrFeedbackPtr	ptrfeed;
     IntegerFeedbackPtr	intfeed;
commit 2103d61909c7e6bd345622962df7784a19df72c5
Author: Simon Thum <simon.thum at gmx.de>
Date:   Sat Mar 5 05:02:54 2011 +0100

    simplify ChangeDeviceControl in stubs
    
    Signed-off-by: Simon Thum <simon.thum at gmx.de>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/Xi/stubs.c b/Xi/stubs.c
index d9e8eec..6a4c181 100644
--- a/Xi/stubs.c
+++ b/Xi/stubs.c
@@ -115,17 +115,7 @@ int
 ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev,
 		    xDeviceCtl * control)
 {
-    switch (control->control) {
-    case DEVICE_RESOLUTION:
-	return BadMatch;
-    case DEVICE_ABS_CALIB:
-    case DEVICE_ABS_AREA:
-        return BadMatch;
-    case DEVICE_CORE:
-        return BadMatch;
-    default:
-	return BadMatch;
-    }
+    return BadMatch;
 }
 
 
commit 118ef6f806f629a8e2ad61e4f2a43820b0fa621c
Author: Simon Thum <simon.thum at gmx.de>
Date:   Sat Mar 5 05:01:22 2011 +0100

    xf86: don't pretend to support DEVICE_ABS_* in ChangeDeviceControl
    
    Signed-off-by: Simon Thum <simon.thum at gmx.de>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 2bac33a..ae22ef2 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -405,10 +405,10 @@ ChangeDeviceControl (ClientPtr client, DeviceIntPtr dev, xDeviceCtl *control)
   if (!pInfo->control_proc) {
       switch (control->control) {
       case DEVICE_CORE:
-          return BadMatch;
-      case DEVICE_RESOLUTION:
       case DEVICE_ABS_CALIB:
       case DEVICE_ABS_AREA:
+          return BadMatch;
+      case DEVICE_RESOLUTION:
       case DEVICE_ENABLE:
         return Success;
       default:
commit dee83dff4b8fbf1351263beaf2d531d033b6d0c4
Author: Simon Thum <simon.thum at gmx.de>
Date:   Sat Mar 5 04:59:33 2011 +0100

    kdrive: don't pretent to support DEVICE_ABS_* in ChangeDeviceControl
    
    Signed-off-by: Simon Thum <simon.thum at gmx.de>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 608f3a7..3e6c2bc 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -2204,8 +2204,6 @@ ChangeDeviceControl(register ClientPtr client, DeviceIntPtr pDev,
 
     case DEVICE_ABS_CALIB:
     case DEVICE_ABS_AREA:
-        return Success;
-
     case DEVICE_CORE:
         return BadMatch;
     case DEVICE_ENABLE:
commit 9eaecb1bfe358a0c5f24645a29d6c377c0c4b37c
Author: Simon Thum <simon.thum at gmx.de>
Date:   Sun Mar 20 16:28:22 2011 +0100

    xquartz: simplify ChangeDeviceControl
    
    Signed-off-by: Simon Thum <simon.thum at gmx.de>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xquartz/darwinXinput.c b/hw/xquartz/darwinXinput.c
index 8bb83ca..3ef34fe 100644
--- a/hw/xquartz/darwinXinput.c
+++ b/hw/xquartz/darwinXinput.c
@@ -117,17 +117,7 @@ ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev,
 {
 
   DEBUG_LOG("ChangeDeviceControl(%p, %p, %p)\n", client, dev, control);
-    switch (control->control) {
-    case DEVICE_RESOLUTION:
-	return BadMatch;
-    case DEVICE_ABS_CALIB:
-    case DEVICE_ABS_AREA:
-        return BadMatch;
-    case DEVICE_CORE:
-        return BadMatch;
-    default:
-	return BadMatch;
-    }
+  return BadMatch;
 }
 
 
commit 33e257ab43ebf35e838b80c416762e9b743e9385
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Mar 22 11:53:00 2011 +1000

    test: when unit tests are enabled, build them during "make"
    
    Catch compiler errors that were otherwise only spotted on make check.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>

diff --git a/test/Makefile.am b/test/Makefile.am
index 34f21d7..f3265b7 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -2,10 +2,10 @@ if ENABLE_UNIT_TESTS
 if HAVE_GLIB
 if HAVE_LD_WRAP
 SUBDIRS= . xi2
-check_PROGRAMS = xkb input xtest list
+noinst_PROGRAMS = xkb input xtest list
 check_LTLIBRARIES = libxservertest.la
 
-TESTS=$(check_PROGRAMS)
+TESTS=$(noinst_PROGRAMS)
 
 AM_CFLAGS = $(DIX_CFLAGS) $(GLIB_CFLAGS) @XORG_CFLAGS@
 INCLUDES = @XORG_INCS@
diff --git a/test/xi2/Makefile.am b/test/xi2/Makefile.am
index e197869..1b9bfe0 100644
--- a/test/xi2/Makefile.am
+++ b/test/xi2/Makefile.am
@@ -1,7 +1,7 @@
 if ENABLE_UNIT_TESTS
 if HAVE_GLIB
 if HAVE_LD_WRAP
-check_PROGRAMS =  \
+noinst_PROGRAMS =  \
 	protocol-xiqueryversion \
 	protocol-xiquerydevice \
 	protocol-xiselectevents \
@@ -12,7 +12,7 @@ check_PROGRAMS =  \
         protocol-xiwarppointer \
         protocol-eventconvert
 
-TESTS=$(check_PROGRAMS)
+TESTS=$(noinst_PROGRAMS)
 
 AM_CFLAGS = $(DIX_CFLAGS) $(GLIB_CFLAGS) @XORG_CFLAGS@
 INCLUDES = @XORG_INCS@
commit 6243332782f2d286d49f1dec8a628b0a403665fd
Author: Erkki Seppälä <erkki.seppala at vincit.fi>
Date:   Fri Mar 18 16:35:36 2011 +0200

    config: handle device change event properly
    
    wakeup_handler in udev.c wasn't dealing with udev change events.
    There are situations when a device can gain its input capabilities
    after it has been added to the system and therefore the change events
    must be handled as well.
    
    The change is handled as a consecutive device removal and addition.
    
    Signed-off-by: Erkki Seppälä <erkki.seppala at vincit.fi>
    Signed-off-by: Stefan Kost <Stefan.Kost at nokia.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/config/udev.c b/config/udev.c
index 678e47a..9ac34ee 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -255,6 +255,10 @@ wakeup_handler(pointer data, int err, pointer read_mask)
                 device_added(udev_device);
             else if (!strcmp(action, "remove"))
                 device_removed(udev_device);
+            else if (!strcmp(action, "change")) {
+                device_removed(udev_device);
+                device_added(udev_device);
+            }
         }
         udev_device_unref(udev_device);
     }
commit fad10cb38ef2433c82f8a43d3b7d64e323728060
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Fri Mar 18 11:06:57 2011 +1000

    xfree86: print out which driver is about to be used.
    
    Makes reading the log file a lot easier for those that don't magically
    recognise the log spew by the individual drivers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index e3264e6..2bac33a 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -775,6 +775,8 @@ xf86NewInputDevice(InputInfoPtr pInfo, DeviceIntPtr *pdev, BOOL enable)
         goto unwind;
     }
 
+    xf86Msg(X_INFO, "Using input driver '%s' for '%s'\n", drv->driverName, pInfo->name);
+
     if (!drv->PreInit) {
         xf86Msg(X_ERROR,
                 "Input driver `%s' has no PreInit function (ignoring)\n",


More information about the xorg-commit mailing list