Am 30.07.2010 08:21, schrieb Peter Hutterer:
From: Simon Thum simon.t...@gmx.de
Instead of shoving it in rather unrelated places, move acceleration init
into xf86NewInputDevice.
Caveat: It's not clear atm how relevant other callers of ActivateDevice
(like OpenDevice) actually are.
Seems like I hit the nail on the head here :)
Since the followup patch removes those hooks, you may want to remove the
caveat as well.
Signed-off-by: Simon Thum simon.t...@gmx.de
I guess s-o-b tops r-b, so just keep that.
Reviewed-by: Peter Hutterer peter.hutte...@who-t.net
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
---
hw/xfree86/common/xf86Xinput.c | 27 ---
1 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index a6b0b58..ea82638 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -93,6 +93,9 @@
EventListPtr xf86Events = NULL;
+static int
+xf86InputDevicePostInit(DeviceIntPtr dev);
+
/**
* Eval config and modify DeviceVelocityRec accordingly
*/
@@ -782,6 +785,19 @@ xf86DeleteInput(InputInfoPtr pInp, int flags)
free(pInp);
}
+/*
+ * Apply backend-specific initialization. Invoked after ActiveteDevice(),
+ * i.e. after the driver successfully completed DEVICE_INIT and the device
+ * is advertised.
+ * @param dev the device
+ * @return Success or an error code
+ */
+static int
+xf86InputDevicePostInit(DeviceIntPtr dev) {
+ApplyAccelerationSettings(dev);
+return Success;
+}
+
/**
* Create a new input device, activate and enable it.
*
@@ -851,6 +867,14 @@ xf86NewInputDevice(IDevPtr idev, DeviceIntPtr *pdev,
BOOL enable)
goto unwind;
}
+rval = xf86InputDevicePostInit(dev);
+if (rval != Success)
+{
+ xf86Msg(X_ERROR, Couldn't post-init device \%s\\n,
idev-identifier);
+ RemoveDevice(dev, TRUE);
+ goto unwind;
+}
+
/* Enable it if it's properly initialised and we're currently in the VT
*/
if (enable dev-inited dev-startup xf86Screens[0]-vtSema)
{
@@ -1361,9 +1385,6 @@ xf86InitValuatorDefaults(DeviceIntPtr dev, int axnum)
dev-valuator-axisVal[1] = screenInfo.screens[0]-height / 2;
dev-last.valuators[1] = dev-valuator-axisVal[1];
}
-
-if(axnum == 0) /* to prevent double invocation */
- ApplyAccelerationSettings(dev);
}
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel