Subject: [PATCH 0/4] Touchscreen performance related fixes

From: [email-masked] (Vignesh R)
Date: Thu, 13 Nov 2014 17:53:17 +0530

Hi,

On Wednesday 12 November 2014 06:30 PM, Johannes Pointner wrote:
> Hello Vignesh,
> 
> I tried your patch version 3 on a customized board and had some
> behavior I couldn't explain.
> If I only use the touchscreen it works fine but if I also read values
> from the ADCs then I get a lot of pen_up events even if I am still
> touching the screen.
> For the test I read via
> # cat /sys/bus/iio/devices/iio\:device0/in_voltage5_raw
> values from the ADC in an busy loop as you explained in an email
> before. Did you also experience such behavior or do you know what
> causes it?

Thanks for testing. I was able to fix this issue. Will post version 4
shortly.

Regards
Vignesh

> 
> Without the patches the touchscreen works fine during the iio test.
> 
> Thanks,
> Hannes
> 
> 2014-11-06 8:42 GMT+01:00 Vignesh R <[email-masked]>:
>>
>>
>> On Monday 03 November 2014 11:39 PM, Richard Cochran wrote:
>>> On Mon, Oct 27, 2014 at 04:38:27PM +0530, Vignesh R wrote:
>>>> This series of patches fix TSC defects related to lag in touchscreen
>>>> performance and cursor jump at touch release. The lag was result of
>>>> udelay in TSC interrupt handler. Cursor jump due to false pen-up event.
>>>> The patches implement Advisory 1.0.31 in silicon errata of am335x-evm
>>>> to avoid false pen-up events and remove udelay.
>>>
>>> That advisory has two workarounds. You have chosen the second one?
>>
>> Work around one. Hence 5 wire design is not broken.
>>
>>>
>>> The text of the second workaround says it only works on 4 wire setups,
>>> so I wonder how 5 wire designs will be affected.
>>>
>>>> The advisory says to use
>>>> steps 1 to 4 for ADC and 5 to 16 for TSC (assuming 4 wire TSC and 4 channel
>>>> ADC).
>>>
>>> No, it doesn't say that. (sprz360f.pdf)
>>
>> The pen up event detection happens immediately after charge step. Hence,
>> interchanging ADC and TSC steps makes sure that sampling of touch
>> co-ordinates and pen events are done one after the other. This
>> workaround was suggested by internal hardware folks. Earlier ADC steps
>> intervened between sampling of co-ordinates and pen event detection
>> which is not desirable.
>>
>>>
>>>> Further the X co-ordinate must be the last one to be sampled just
>>>> before charge step. The first two patches implement the required changes.
>>>
>>> FWIW, I implemented the first workaround and removed the udelay not
>>> too long ago. Like Sebastian, I saw the TSC unit hang after about
>>> 50000 interrupts when running with the workaround.
>>>
>>> Did you test you patch for very long?
>>
>> Yes, I tested for about 200000 interrupts and I didn't see any hang.
>> This patch series does not just implement workaround but also does some
>> minor changes, such as interchanging ADC and TSC steps etc, which makes
>> TSC driver more robust. Let me know if you encounter any issues with my
>> patch series.
>>
>> Regards
>> Vignesh
>>
>>>
>>> Thanks,
>>> Richard
>>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
>> the body of a message to majordomo at vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html