Openmoko Bug #2328: touschreen sometimes stops generating events
Openmoko Public Trac
bugs at docs.openmoko.org
Fri Jun 4 20:58:29 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):
issue is caused by thing i called 'unexpected interrupts'. then device is
touched up/down interrupt recieved, but original drivers do not rely on
interrupt cause, they check adc registers for current state instead. this
may cause that 'down' interrupt recieved while handler thinks this is
'up', that leads to situation then driver no longer watch for down
interrupts and ts generate no events until ts driver reload. other
situation then 'up' interrupt is interpreted as 'down' sometimes lead to
data corruption is adc conversion and 'number remaining of samples need'
can go below 0, so adc conversion will be requested for infinite amount of
times. in this case attempt to reloading module will hang system. as
driver written with some 'states' in mind it can't handle such interrupts
and in fact they are not interesting for us (is we already have pen down,
no need for more interrupt informing as about this), so we have to ignore
em.
for me some thing left unexplained - sometimes recieving interrupts while
we totally not expect them, and why we see this problem only on kernel
without debugging information.
mine solution for this is to accept only expected interrupts.
some logs of failures with added debug info:
http://www.bsdmn.com/openmoko/kernel/touchscreen/34failexpectupgotdown.log
http://www.bsdmn.com/openmoko/kernel/touchscreen/34failexpectdowngotup.log
http://www.bsdmn.com/openmoko/kernel/touchscreen/34unknowunexpected.log
patches for .34 and .29 kernel:
http://www.bsdmn.com/openmoko/kernel/touchscreen/touchscreen_ignoreunexpectedintr29.patch
http://www.bsdmn.com/openmoko/kernel/touchscreen/touchscreen_ignoreunexpectedintr34.patch
.34 patch were tested much more than .29 version for which only basic test
very done.
i hope this bug fix is good step forward to kernel optimized for speed.
--
Ticket URL: <https://docs.openmoko.org/trac/ticket/2328#comment:6>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac
More information about the buglog
mailing list