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

Erik Botö erik.boto at pelagicore.com
Mon Jul 1 11:59:44 PDT 2013


Hi Fabio and Eric,

On Mon, Jul 1, 2013 at 7:06 PM, Eric Nelson
<eric.nelson at boundarydevices.com> wrote:
> Thanks Fabio,
>
>
> On 07/01/2013 09:56 AM, Fabio Estevam wrote:
>>
>> Hi Erik,
>>
>> On Mon, Jul 1, 2013 at 12:53 PM, Erik Botö <erik.boto at pelagicore.com>
>> wrote:
>>>
>>> Hi,
>>>
>>>  <snip>
>>>
>>>
>>> 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.
>>>
>>> <snip>
>>
>>
>> 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
>
>
> Also our kernel tree in branch 'boundary-imx_3.0.35_4.0.0':
>
> https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.0.35_4.0.0/drivers/input/touchscreen/egalax_ts.c#L142
>
> Regards,
>
>
> Eric

I think you missed what my patch does, it duplicates the for-loop used
in the "if (down)"-case so it's also done in  the "else"-case. Now
that I frase it this way I realize it should probably be removed from
the "if (down) else ()"-statement and always done before input_sync()
instead. I'll post an updated patch-suggestion tomorrow.

The way I read multi-touch-protocol.txt all touch points should be
reported before input_sync (SYN_REPORT), which is not the case today
if one of multiple fingers are lifted.

Cheers,
Erik



More information about the meta-freescale mailing list