Re: [PATCH V2 1/3] Input: cyttsp - Cypress TTSP capacitivemulti-touch screen support

From: Javier Martinez Canillas
Date: Wed Sep 14 2011 - 03:15:13 EST


On Tue, Sep 13, 2011 at 10:24 AM, Henrik Rydberg <rydberg@xxxxxxxxxxx> wrote:
> Hi Javier,
>
>> Cypress TrueTouch(tm) Standard Product controllers are found in
>> a wide range of embedded devices. This driver add support for a
>> variety of TTSP controllers.
>>
>> The driver is composed of a core driver that process the data sent by
>> the contacts and a set of bus specific interface modules. This patch
>> adds the base core TTSP driver.
>>
>> The original author of the driver is Kevin McNeely <kev@xxxxxxxxxxx>
>>
>> Since the hardware is capable of tracking identifiable contacts and the
>> original driver used multi-touch protocol type A (stateless), multi-touch
>> protocol type B (stateful) support was added by Javier Martinez Canillas.
>>
>> Signed-off-by: Javier Martinez Canillas <martinez.javier@xxxxxxxxx>
>> ---
>> Changes since v1: Fix issues called out by Dmitry Torokhov
>> Â Â Â- Add msleep() delays between retries for read and write operations
>> Â Â Â- Change cyttsp_core_init() to receive the IRQ from the client data
>> Â Â Â Âinstead of obtaining from the platform_data
>
> Compared to the staging version you sent earlier, this version seems
> to be a step back towards the original version regarding the MT
> implementation. Is this the right patch?
>
> Thanks,
> Henrik
>

Hello Henrik,

Yes it is the right patch, or at least the patch I meant to send. The
staging version I send earlier didn't support multi-touch protocol
type A.

Since Cypress HW can do finger (contact) tracking, a requirement was
to add multi-touch protocol type B support to the driver. This
patch-set does that and also fixes some issues that Dmitry had with
this patch-set in its V1.

Even when Cypress touchscreen can keep track of each contact, it
doesn't preserve the contact index. So if I have 3 fingers that were
pressed in order and the touchscreen assigned it the values:

10 11 12

And then I lift the first finger (10), the hardware reports:

11 12

Maybe that is why the driver seems complex, you have to keep a copy of
the hardware state and iterate over all previous contacts to see if
there are new fingers and if the old ones have been lifted.

Best regards,

--
Javier MartÃnez Canillas
(+34) 682 39 81 69
Barcelona, Spain
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/