Re: Emulating level IRQs (was: Re: [PATCH] Input: eeti_ts: Mark asCONFIG_BROKEN)

From: Mark Brown
Date: Tue Jul 24 2012 - 14:58:23 EST


On Tue, Jul 24, 2012 at 08:01:56PM +0200, Daniel Mack wrote:
> On 23.07.2012 18:51, Dmitry Torokhov wrote:

> > Hmm, but that would mean we need to restore reading the data in open()
> > to make sure we re-arm IRQ in case somebody touched the screen before it
> > was opened by userspace...

> I had another look at this and don't really know what to do here. We
> definitely need level interrupts for this device as the interrupt line's
> level is the only that tells us when we can stop reading from the
> device. So it's not just the start condition that bites us here.

> I copied some people that might help find a solution.

I've raised the same issue myself, it's fairly common.

> So it boils down to the question: Is there any easy and generic way to
> emulate level irq on chips that don't support that natively?

Nothing in core. The nearest thing is to poll until you run out of work
(which is rude but survivable for threaded IRQs that don't assert too
much), ideally just reusing the level IRQ if it can report IRQ_NONE.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/