Patchwork [meta-oe,meta-efl,meta-gnome,02/10] xf86-input-tslib: fix build with newer xserver

login
register
mail settings
Submitter Martin Jansa
Date Oct. 17, 2011, 11:35 p.m.
Message ID <506d5f781f5ee93e3c9b8ca51a7fb65f40d4a8b8.1318894479.git.Martin.Jansa@gmail.com>
Download mbox | patch
Permalink /patch/13377/
State Accepted
Commit 506d5f781f5ee93e3c9b8ca51a7fb65f40d4a8b8
Headers show

Comments

Martin Jansa - Oct. 17, 2011, 11:35 p.m.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 .../xf86-input-tslib-port-ABI-12-r48.patch         |  196 ++++++++++++++++++++
 .../xorg-driver/xf86-input-tslib_0.0.6.bb          |    3 +-
 2 files changed, 198 insertions(+), 1 deletions(-)
 create mode 100644 meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch

Patch

diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch
new file mode 100644
index 0000000..6a6d5b9
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch
@@ -0,0 +1,196 @@ 
+Upstream-Status: Pending
+
+Taken from debian:
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627075
+
+Index: xf86-input-tslib-trunk/src/tslib.c
+===================================================================
+--- xf86-input-tslib-trunk/src/tslib.c	(revision 48)
++++ xf86-input-tslib-trunk/src/tslib.c	(working copy)
+@@ -69,6 +69,13 @@
+ #define DEFAULT_HEIGHT		240
+ #define DEFAULT_WIDTH		320
+ 
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
++#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options), NULL)
++#else
++#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options))
++#endif
++
++
+ enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 };
+ 
+ enum button_state { BUTTON_NOT_PRESSED = 0, BUTTON_1_PRESSED = 1, BUTTON_3_CLICK = 3, BUTTON_3_CLICKED=4, BUTTON_EMULATION_OFF=-1 };
+@@ -106,7 +113,7 @@
+ }
+ 
+ static Bool
+-ConvertProc( LocalDevicePtr local,
++ConvertProc( InputInfoPtr local,
+ 			 int first,
+ 			 int num,
+ 			 int v0,
+@@ -135,7 +142,7 @@
+     return t;
+ }
+ 
+-static void ReadInput (LocalDevicePtr local)
++static void ReadInput (InputInfoPtr local)
+ {
+ 	struct ts_priv *priv = (struct ts_priv *) (local->private);
+ 	struct ts_sample samp;
+@@ -382,7 +389,11 @@
+ 					       axiswidth - 1,	/* max val */
+ 					       axiswidth,	/* resolution */
+ 					       0,		/* min_res */
+-					       axiswidth);	/* max_res */
++					       axiswidth	/* max_res */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
++					       ,Absolute
++#endif
++					       );
+ 
+ 		InitValuatorAxisStruct(device, 1,
+ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+@@ -392,7 +403,11 @@
+ 					       axisheight - 1,	/* max val */
+ 					       axisheight,	/* resolution */
+ 					       0,		/* min_res */
+-					       axisheight);	/* max_res */
++					       axisheight	/* max_res */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
++					       ,Absolute
++#endif
++					       );
+ 
+ 		if (InitProximityClassDeviceStruct (device) == FALSE) {
+ 			ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n");
+@@ -434,7 +449,7 @@
+ 	ErrorF("%s\n", __FUNCTION__);
+ 	xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
+ 	ts_close(priv->ts);
+-	xfree(pInfo->private);
++	free(pInfo->private);
+ 	pInfo->private = NULL;
+ 	xf86DeleteInput(pInfo, 0);
+ }
+@@ -444,47 +459,57 @@
+  *
+  * called when the module subsection is found in XF86Config
+  */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
++static int 
++xf86TslibInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
++#else
+ static InputInfoPtr
+ xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags)
++#endif
+ {
+ 	struct ts_priv *priv;
+ 	char *s;
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ 	InputInfoPtr pInfo;
++#endif
+ 
+-	priv = xcalloc (1, sizeof (struct ts_priv));
++	priv = calloc (1, sizeof (struct ts_priv));
+         if (!priv)
+-                return NULL;
++                return BadValue;
+ 
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ 	if (!(pInfo = xf86AllocateInput(drv, 0))) {
+-		xfree(priv);
+-		return NULL;
++		free(priv);
++		return BadValue;
+ 	}
+ 
+ 	/* Initialise the InputInfoRec. */
+ 	pInfo->name = dev->identifier;
+-	pInfo->type_name = XI_TOUCHSCREEN;
+ 	pInfo->flags =
+ 	    XI86_KEYBOARD_CAPABLE | XI86_POINTER_CAPABLE |
+ 	    XI86_SEND_DRAG_EVENTS;
+-	pInfo->device_control = xf86TslibControlProc;
+-	pInfo->read_input = ReadInput;
+ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
+ 	pInfo->motion_history_proc = xf86GetMotionEvents;
+ 	pInfo->history_size = 0;
+ #endif
+-	pInfo->control_proc = NULL;
++	pInfo->conf_idev = dev;
+ 	pInfo->close_proc = NULL;
+-	pInfo->switch_mode = NULL;
+ 	pInfo->conversion_proc = ConvertProc;
+ 	pInfo->reverse_conversion_proc = NULL;
+-	pInfo->dev = NULL;
+ 	pInfo->private_flags = 0;
+ 	pInfo->always_core_feedback = 0;
+-	pInfo->conf_idev = dev;
++#endif
++
++	pInfo->type_name = XI_TOUCHSCREEN;
++	pInfo->control_proc = NULL;
++	pInfo->read_input = ReadInput;
++	pInfo->device_control = xf86TslibControlProc;
++	pInfo->switch_mode = NULL;
+ 	pInfo->private = priv;
++	pInfo->dev = NULL;
+ 
+ 	/* Collect the options, and process the common options. */
+-	xf86CollectInputOptions(pInfo, NULL, NULL);
++	COLLECT_INPUT_OPTIONS(pInfo, NULL);
+ 	xf86ProcessCommonOptions(pInfo, pInfo->options);
+ 
+ 	priv->screen_num = xf86SetIntOption(pInfo->options, "ScreenNumber", 0 );
+@@ -510,23 +535,31 @@
+ 		priv->rotate = TSLIB_ROTATE_NONE;
+ 	}
+ 
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+  	s = xf86CheckStrOption(dev->commonOptions, "path", NULL);
++#else
++	s = xf86CheckStrOption(pInfo->options, "path", NULL);
++#endif
+   	if (!s)
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ 		s = xf86CheckStrOption(dev->commonOptions, "Device", NULL);
++#else
++		s = xf86CheckStrOption(pInfo->options, "Device", NULL);
++#endif
+  
+ 	priv->ts = ts_open(s, 1);
+-	xfree(s);
++	free(s);
+ 
+ 	if (!priv->ts) {
+ 		ErrorF("ts_open failed (device=%s)\n",s);
+ 		xf86DeleteInput(pInfo, 0);
+-		return NULL;
++		return BadValue;
+ 	}
+ 
+ 	if (ts_config(priv->ts)) {
+ 		ErrorF("ts_config failed\n");
+ 		xf86DeleteInput(pInfo, 0);
+-		return NULL;
++		return BadValue;
+ 	}
+ 
+ 	pInfo->fd = ts_fd(priv->ts);
+@@ -536,11 +569,13 @@
+ 		priv->state = BUTTON_EMULATION_OFF;
+ 	}
+ 
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ 	/* Mark the device configured */
+ 	pInfo->flags |= XI86_CONFIGURED;
++#endif
+ 
+ 	/* Return the configured device */
+-	return (pInfo);
++	return Success;
+ }
+ 
+ _X_EXPORT InputDriverRec TSLIB = {
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
index 9ce5093..de0eb6f 100644
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
@@ -8,13 +8,14 @@  RSUGGESTS_${PN} += "hal"
 LIC_FILES_CHKSUM = "file://src/tslib.c;endline=28;md5=bd62eaef222dcf5cd59e490a12bd795e \
                     file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
 
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
 
 SRC_URI = "http://www.pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-${PV}.tar.bz2;name=archive \
            file://double-free-crash.patch \
            file://10-x11-input-tslib.fdi \
            file://xserver-174-XGetPointerControl.patch \
            file://99-xf86-input-tslib.rules \
+           file://xf86-input-tslib-port-ABI-12-r48.patch \
 "
 SRC_URI[md5sum] = "b7a4d2f11637ee3fcf432e044b1d017f"
 SRC_URI[sha256sum] = "5f46fdef095a6e44a69e0f0b57c7d665224b26d990d006611236d8332e85b105"