summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib')
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi11
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules5
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch20
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch34
4 files changed, 70 insertions, 0 deletions
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi
new file mode 100644
index 000000000..906043947
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi
@@ -0,0 +1,11 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<deviceinfo version="0.2">
3 <device>
4 <match key="info.capabilities" contains="input.touchpad">
5 <merge key="input.x11_driver" type="string">tslib</merge>
6 </match>
7 <match key="info.capabilities" contains="input.touchscreen">
8 <merge key="input.x11_driver" type="string">tslib</merge>
9 </match>
10 </device>
11</deviceinfo>
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules
new file mode 100644
index 000000000..ec130c257
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules
@@ -0,0 +1,5 @@
1# create /dev/input/touchscreenX symlink, tag xf86-input-tslib as driver
2SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen%n", ENV{x11_driver}="tslib"
3SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="ads7846", SYMLINK+="input/touchscreen%n", ENV{x11_driver}="tslib"
4
5
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch
new file mode 100644
index 000000000..07754731d
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch
@@ -0,0 +1,20 @@
1xorg-server-1.7.3/hw/xfree86/common/xf86Helper.c contains this code
2causing a double free crash on chvt or exit:
3
4 /* This should *really* be handled in drv->UnInit(dev) call instead, but
5 * if the driver forgets about it make sure we free it or at least crash
6 * with flying colors */
7 if (pInp->private)
8 xfree(pInp->private);
9Index: xf86-input-tslib-0.0.6/src/tslib.c
10===================================================================
11--- xf86-input-tslib-0.0.6.orig/src/tslib.c
12+++ xf86-input-tslib-0.0.6/src/tslib.c
13@@ -435,6 +435,7 @@ xf86TslibUninit(InputDriverPtr drv, Inpu
14 xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
15 ts_close(priv->ts);
16 xfree(pInfo->private);
17+ pInfo->private = NULL;
18 xf86DeleteInput(pInfo, 0);
19 }
20
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch
new file mode 100644
index 000000000..a1f6ba8f9
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch
@@ -0,0 +1,34 @@
1From Grazvydas Ignotas
2
3At least xserver 1.7.4 crashes on XGetPointerControl request because of xf86-input-tslib:
4
5Program received signal SIGSEGV, Segmentation fault.
6#0 0x000355e0 in ProcGetPointerControl (client=0x4a2e58) at devices.c:2122
7#1 0x00062fa8 in Dispatch () at dispatch.c:439
8#2 0x00022444 in main (argc=4, argv=0xbeebedc4, envp=0xbeebedd8) at main.c:285
9
10This happens because ptrfeed field is not set in device structure from tslib.
11To fix this, call InitPtrFeedbackClassDeviceStruct() during DEVICE_INIT to get necessary setup done (as done in other input drivers).
12
13---
14diff -ur xf86-input-tslib-0.0.6/src/tslib.c xf86-input-tslib-0.0.6_/src/tslib.c
15--- xf86-input-tslib-0.0.6/src/tslib.c 2010-02-09 12:23:22.000000000 +0200
16+++ xf86-input-tslib-0.0.6_/src/tslib.c 2010-02-09 12:37:33.000000000 +0200
17@@ -103,8 +103,6 @@
18 static void
19 PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl)
20 {
21- ErrorF("%s\n", __FUNCTION__);
22- return;
23 }
24
25 static Bool
26@@ -406,6 +404,8 @@
27 xf86MotionHistoryAllocate(pInfo);
28 #endif
29
30+ if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc))
31+ return !Success;
32 break;
33
34 case DEVICE_ON: