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

Fabio Estevam festevam at gmail.com
Mon Jul 1 09:56:28 PDT 2013


Hi Erik,

On Mon, Jul 1, 2013 at 12:53 PM, Erik Botö <erik.boto at pelagicore.com> wrote:
> 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:

Your proposed fix matches the code from FSL BSP 4.0.0 driver:

http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/drivers/input/touchscreen/egalax_ts.c?h=imx_3.0.35_4.0.0

#ifdef CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH
		input_report_abs(input_dev, ABS_X, x);
		input_report_abs(input_dev, ABS_Y, y);
		input_event(data->input_dev, EV_KEY, BTN_TOUCH, 1);
		input_report_abs(input_dev, ABS_PRESSURE, 1);
#else
		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

Regards,

Fabio Estevam



More information about the meta-freescale mailing list