[meta-freescale] Issue with egalax_ts in linux-boundary

Erik Botö erik.boto at pelagicore.com
Mon Jul 1 08:53:32 PDT 2013


Hi,

When trying to use a nitrogen6x board with Freescale MCIMX-LVDS1
touchscreen together with Qt5 to create a QtQuick GUI that uses multitouch
gestures I discovered that the touchscreen driver (egalax_ts) does not work
as intended with Qt5. I'm not entirely sure if it's Qt that is not handling
a case that should be ok or if it's the driver that is misbehaving, but I
think it's the driver that is at fault.

The problem is that when pressing two fingers on the screen and then when
you lift one finger only the lifted finger will be reported before sending
the next SYN_REPORT, instead of also reporting the other present fingers
before SYN_REPORT.

Is there a separate mailing list for boundary-linux or is this list ok? I
thought this might be useful to get "on the record" here anyway if someone
else hits the same issue.

Cheers,
Erik Botö
Pelagicore AB

Proposed fix:

--- git/drivers/input/touchscreen/egalax_ts.c 2013-06-19 18:17:31.073736481
+0200
+++ git.new/drivers/input/touchscreen/egalax_ts.c 2013-07-01
17:04:21.054466334 +0200
@@ -173,6 +173,23 @@
  input_report_abs(input_dev, ABS_MT_TRACKING_ID, id);
  input_event(input_dev, EV_ABS, ABS_MT_TOUCH_MAJOR, 0);
  input_mt_sync(input_dev);
+ /* report other pointers as well */
+ for (i = 0; i < MAX_SUPPORT_POINTS; i++) {
+ if (!events[i].valid)
+ continue;
+ dev_dbg(&client->dev, "report id:%d valid:%d x:%d y:%d",
+ i, valid, x, y);
+
+ input_report_abs(input_dev,
+ ABS_MT_TRACKING_ID, i);
+ input_report_abs(input_dev,
+ ABS_MT_TOUCH_MAJOR, 1);
+ input_report_abs(input_dev,
+ ABS_MT_POSITION_X, events[i].x);
+ input_report_abs(input_dev,
+ ABS_MT_POSITION_Y, events[i].y);
+ input_mt_sync(input_dev);
+ }
 #endif
  }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20130701/b4d2a830/attachment.html>


More information about the meta-freescale mailing list