Thread (28 messages) 28 messages, 7 authors, 2014-11-17

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

From: Johannes Pointner <hidden>
Date: 2014-11-12 13:00:36
Also in: linux-arm-kernel, linux-devicetree, linux-iio, linux-omap, lkml

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?

Without the patches the touchscreen works fine during the iio test.

Thanks,
Hannes

2014-11-06 8:42 GMT+01:00 Vignesh R [off-list ref]:

On Monday 03 November 2014 11:39 PM, Richard Cochran wrote:
quoted
On Mon, Oct 27, 2014 at 04:38:27PM +0530, Vignesh R wrote:
quoted
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.
quoted
The text of the second workaround says it only works on 4 wire setups,
so I wonder how 5 wire designs will be affected.
quoted
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.
quoted
quoted
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
quoted
Thanks,
Richard
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help