new file mode 100644
@@ -0,0 +1,80 @@
+From 0d3ec2e97c99431cdbaea8e958a75ff2e748da41 Mon Sep 17 00:00:00 2001
+From: Jaska Kivela <jaska@kivela.net>
+Date: Wed, 16 Jan 2013 11:51:04 +0200
+Subject: Added axis inversion functionality.
+
+The module would previously log a message if min > max, but not do anything
+about it. Keep the original min/max around, swap on-the-fly.
+
+Signed-off-by: Jaska Kivela <jaska@kivela.net>
+Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+diff --git a/src/xf86Elo.c b/src/xf86Elo.c
+index cb1699e..c37cf9a 100644
+--- a/src/xf86Elo.c
++++ b/src/xf86Elo.c
+@@ -360,6 +360,22 @@ xf86EloReadInput(InputInfoPtr pInfo)
+ cur_y = WORD_ASSEMBLY(priv->packet_buf[5], priv->packet_buf[6]);
+ state = priv->packet_buf[2] & 0x07;
+
++ DBG(5, ErrorF("ELO got: x(%d), y(%d), %s\n",
++ cur_x, cur_y,
++ (state == ELO_PRESS) ? "Press" :
++ ((state == ELO_RELEASE) ? "Release" : "Stream")));
++
++ if (priv->min_y > priv->max_y) {
++ /* inverted y axis */
++ cur_y = priv->max_y - cur_y + priv->min_y;
++ }
++
++ if (priv->min_x > priv->max_x) {
++ /* inverted x axis */
++ cur_x = priv->max_x - cur_x + priv->min_x;
++ }
++
++
+ /*
+ * Send events.
+ *
+@@ -676,6 +692,7 @@ xf86EloControl(DeviceIntPtr dev,
+ unsigned char reply[ELO_PACKET_SIZE];
+ Atom btn_label;
+ Atom axis_labels[2] = { 0, 0 };
++ int x0, x1, y0, y1;
+
+ switch(mode) {
+
+@@ -719,17 +736,27 @@ xf86EloControl(DeviceIntPtr dev,
+ return !Success;
+ }
+ else {
++
++ /* Correct the coordinates for possibly inverted axis.
++ Leave priv->variables untouched so we can check for
++ inversion on incoming events.
++ */
++ y0 = min(priv->min_y, priv->max_y);
++ y1 = max(priv->min_y, priv->max_y);
++ x0 = min(priv->min_x, priv->max_x);
++ x1 = max(priv->min_x, priv->max_x);
++
+ /* I will map coordinates myself */
+ InitValuatorAxisStruct(dev, 0,
+ axis_labels[0],
+- priv->min_x, priv->max_x,
++ x0, x1,
+ 9500,
+ 0 /* min_res */,
+ 9500 /* max_res */,
+ Absolute);
+ InitValuatorAxisStruct(dev, 1,
+ axis_labels[1],
+- priv->min_y, priv->max_y,
++ y0, y1,
+ 10500,
+ 0 /* min_res */,
+ 10500 /* max_res */,
+--
+cgit v0.10.2
+
new file mode 100644
@@ -0,0 +1,5 @@
+require xorg-driver-input.inc
+
+SUMMARY = "X.Org X server -- Elo Graphics input driver"
+
+SRC_URI += "file://axis-inversion.patch"
new file mode 100644
@@ -0,0 +1 @@
+78455583a34ccd209edc1aba5538926df4faf47f xf86-input-elographics-1.4.1.tar.bz2