Openmoko Bug #2328: touschreen sometimes stops generating events

Openmoko Public Trac bugs at docs.openmoko.org
Thu Jun 3 09:51:28 CEST 2010


#2328: touschreen sometimes stops generating events
--------------------+-------------------------------------------------------
 Reporter:  lindi   |          Owner:  openmoko-kernel
     Type:  defect  |         Status:  new            
 Priority:  normal  |      Milestone:                 
Component:  kernel  |        Version:                 
 Severity:  normal  |       Keywords:  touchscreen    
 Haspatch:  0       |      Blockedby:                 
Estimated:          |    Patchreview:                 
 Blocking:          |   Reproducible:  rarely         
--------------------+-------------------------------------------------------

Comment(by gena2x):

 I spent some time trying to investigate this (or similar?) issue.

 I got problems then i changed optimization from optimization for size to
 optimization for speed (for andy-tracking).

 Perfectly reproducible.

 Interesting thing i found while investigation is that our touchscreen
 sometimes start sending absolutely correct events (no need to filter).
 This happens then screen is blanked for some period and perfectly
 reproducible too.

 Reloading touchscreen module restores functionality.

 I can't recall correctly (i did investigation in Feb) but problem real
 causes were following:

 dmesg is like following:

 ...
 Jan  1 03:49:06 debian-gta02 kernel: [ 2539.550000] s3c2440-ts s3c2440-ts:
 Stylus timer, down state, samples: 1, 1, 4
 Jan  1 03:49:06 debian-gta02 kernel: [ 2539.550000] s3c2440-ts s3c2440-ts:
 Stylus irq, down state: 0, 0
 Jan  1 03:49:06 debian-gta02 kernel: [ 2539.550000] s3c2440-ts s3c2440-ts:
 stylus_irq: count=4
 Jan  1 03:49:06 debian-gta02 kernel: [ 2539.560000] s3c2440-ts s3c2440-ts:
 Stylus irq, down state: 0, 0
 Jan  1 03:49:06 debian-gta02 kernel: [ 2539.560000] s3c2440-ts s3c2440-ts:
 stylus_irq: count=4
 Jan  1 03:49:06 debian-gta02 kernel: [ 2539.565000] s3c2440-ts s3c2440-ts:
 Stylus timer, down state, samples: 0, 0, 4
 Jan  1 03:49:06 debian-gta02 kernel: [ 2540.005000] s3c2440-ts s3c2440-ts:
 Stylus irq, down state: 1, 1
 Jan  1 03:49:06 debian-gta02 kernel: [ 2540.010000] s3c2440-ts s3c2440-ts:
 Stylus timer, down state, samples: 1, 1, 4
 Jan  1 03:49:06 debian-gta02 kernel: [ 2540.020000] s3c2440-ts s3c2440-ts:
 Stylus timer, down state, samples: 1, 1, 4
 [...same...]
 Jan  1 03:49:06 debian-gta02 kernel: [ 2540.135000] s3c2440-ts s3c2440-ts:
 Stylus timer, down state, samples: 1, 1, 4
 Jan  1 03:49:06 debian-gta02 kernel: [ 2540.140000] s3c2440-ts s3c2440-ts:
 Stylus timer, down state, samples: 1, 1, 4
 Jan  1 03:49:06 debian-gta02 kernel: [ 2540.145000] s3c2440-ts s3c2440-ts:
 Stylus irq, down state: 0, 0
 Jan  1 03:49:06 debian-gta02 kernel: [ 2540.145000] s3c2440-ts s3c2440-ts:
 stylus_irq: count=4
 Jan  1 03:49:06 debian-gta02 kernel: [ 2540.150000] s3c2440-ts s3c2440-ts:
 Stylus irq, down state: 1, 0

 "Stylus irq, down state: 0, 0' is a 'up' interrupt
 up prints also 'stylus_irq: count=?', this is count of measurements ready
 at this point.

 "Stylus irq, down state: 1, ?' is a 'down' interrupt
 down starts 'timer'

 main source of info about interrupt is reading registers after each
 conversion/on interrupt. if that registers return 1 - ts is down. and we
 start timer and adc. then it is 'up' 0 we only start waiting for down.
 (this seen unneeded for me as we already know what are we waiting, we can
 say state=!state, but this not works somehow)

 this down state '1,1' is normal situation, the '1,0' is then bug occured.

 so, interrupt happens but adc registers report stylus is 'up'. and so they
 do forever from some point. I rewrited driver to check only interrupts,
 but somehow this didn't helped. i tried other ideas also, but without
 success.

 all the tests are from .34-backported (as it was in february) driver
 without filtering.

 i fact i also did some investigation on touchscreen buzz, i tried
 different combinations of delays, and scaling and all without luck too.

-- 
Ticket URL: <https://docs.openmoko.org/trac/ticket/2328#comment:5>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac


More information about the openmoko-kernel mailing list