xf86-input-tslib_0.0.5.bb : add rotation handling patch from debian and
authorGraeme Gregory <dp@xora.org.uk>
Tue, 11 Nov 2008 14:17:49 +0000 (15:17 +0100)
committerKoen Kooi <koen@openembedded.org>
Tue, 11 Nov 2008 14:17:49 +0000 (15:17 +0100)
my own experimental dynamic resolution patch. Using Xorg to tell us what
resolution we run at, not assuming hardcoded defaults.

packages/xorg-driver/xf86-input-tslib/01_fix-wrong-value-range-for-the-axises.diff [new file with mode: 0644]
packages/xorg-driver/xf86-input-tslib/dynamic-xy.patch [new file with mode: 0644]
packages/xorg-driver/xf86-input-tslib_0.0.5.bb

diff --git a/packages/xorg-driver/xf86-input-tslib/01_fix-wrong-value-range-for-the-axises.diff b/packages/xorg-driver/xf86-input-tslib/01_fix-wrong-value-range-for-the-axises.diff
new file mode 100644 (file)
index 0000000..b540710
--- /dev/null
@@ -0,0 +1,47 @@
+--- xf86-input-tslib-0.0.5.orig/src/tslib.c
++++ xf86-input-tslib-0.0.5/src/tslib.c
+@@ -183,7 +185,7 @@
+ {
+       InputInfoPtr pInfo;
+       unsigned char map[MAXBUTTONS + 1];
+-      int i;
++      int i, axiswidth, axisheight;
+       struct ts_priv *priv;
+       ErrorF("%s\n", __FUNCTION__);
+@@ -212,17 +226,29 @@
+                       return !Success;
+               }
++              switch(priv->rotate) {
++              case TSLIB_ROTATE_CW:
++              case TSLIB_ROTATE_CCW:
++                      axiswidth = priv->height;
++                      axisheight = priv->width;
++                      break;
++              default:
++                      axiswidth = priv->width;
++                      axisheight = priv->height;
++                      break;
++              }
++
+               InitValuatorAxisStruct(device, 0, 0,            /* min val */
+-                                             priv->width - 1, /* max val */
+-                                             priv->width,     /* resolution */
++                                             axiswidth - 1,   /* max val */
++                                             axiswidth,       /* resolution */
+                                              0,               /* min_res */
+-                                             priv->width);    /* max_res */
++                                             axiswidth);      /* max_res */
+               InitValuatorAxisStruct(device, 1, 0,            /* min val */
+-                                             priv->height - 1,/* max val */
+-                                             priv->height,    /* resolution */
++                                             axisheight - 1,  /* max val */
++                                             axisheight,      /* resolution */
+                                              0,               /* min_res */
+-                                             priv->height);   /* max_res */
++                                             axisheight);     /* max_res */
+               if (InitProximityClassDeviceStruct (device) == FALSE) {
+                       ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n");
diff --git a/packages/xorg-driver/xf86-input-tslib/dynamic-xy.patch b/packages/xorg-driver/xf86-input-tslib/dynamic-xy.patch
new file mode 100644 (file)
index 0000000..e4ff346
--- /dev/null
@@ -0,0 +1,17 @@
+Index: xf86-input-tslib-0.0.5/src/tslib.c
+===================================================================
+--- xf86-input-tslib-0.0.5.orig/src/tslib.c    2008-11-11 13:48:12.000000000 +0000
++++ xf86-input-tslib-0.0.5/src/tslib.c 2008-11-11 13:51:51.000000000 +0000
+@@ -321,10 +321,10 @@
+       priv->screen_num = xf86SetIntOption(pInfo->options, "ScreenNumber", 0 );
+       priv->width = xf86SetIntOption(pInfo->options, "Width", 0);
+-      if (priv->width <= 0)   priv->width = DEFAULT_WIDTH;
++      if (priv->width <= 0)   priv->width = screenInfo.screens[0]->width;
+       priv->height = xf86SetIntOption(pInfo->options, "Height", 0);
+-      if (priv->height <= 0)  priv->height = DEFAULT_HEIGHT;
++      if (priv->height <= 0)  priv->height = screenInfo.screens[0]->height;
+       s = xf86SetStrOption(pInfo->options, "Rotate", 0);
+       if (s > 0) {
index b8d8888..bed0160 100644 (file)
@@ -2,10 +2,14 @@ require xorg-driver-input.inc
 
 DESCRIPTION = "X.Org X server -- tslib input driver"
 RRECOMMENDS += "hal"
-PR = "r5"
+DEPENDS += "tslib"
+
+PR = "r6"
 
 SRC_URI = "http://www.pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-${PV}.tar.bz2 \
            file://use-hal-for-device.diff;patch=1 \
+          file://01_fix-wrong-value-range-for-the-axises.diff;patch=1 \
+          file://dynamic-xy.patch;patch=1 \
            file://10-x11-input-tslib.fdi"
 
 do_configure_prepend() {