On Fri, Mar 25, 2011 at 12:30:32AM -0700, Dmitry Torokhov wrote:
I am just not comfortable with a touchcsreen requiring essentially 2
threads to operate (2 IRQ threads, 2 works). I was thinking about
converting to a thread with a state machine and 2 non-threaded IRQs
disabling themselves and waking the thread up. Do you think something
like that would work?
You can't use non-threaded IRQs as the chip is accessed over I2C or SPI
so when using the built in interrupts you're in thread context before
you've decoded the IRQ. Given the need to ack the IRQ to stop it trying
to do something it doesn't seem worth trying to move the chip
interaction out of the IRQ handlers there - it'd just be performance
pain and you'd still need to worry about which IRQs are enabled at any
given moment since you'd need to disable the IRQs if you wanted to defer
handling them.
Combining the two work items to do the IRQ enable handovers should be
doable, though.