Re: Simulating level triggered interrupts with edges

From: Thomas Gleixner
Date: Wed Jun 22 2011 - 17:32:11 EST


On Wed, 22 Jun 2011, Mark Brown wrote:

> I've run into a couple of cases recently where a system has had a device
> with a level triggered interrupt connected to an edge triggered
> interrupt controller. Ignoring for the minute the hardware design
> concerns one might have this strikes me as something I'd expect the
> kernel to take a reasonable stab at handling in common code since it
> should be possible to have the core simply call the level triggered
> handler repeatedly until it returns IRQ_NONE when used with an edge
> based interrupt. Obviously this leaves something to be desired but
> something like this seems to be the most sensible way to deal with such
> systems.
>
> Is this supported by the current code? I can't see any such support but
> that doesn't mean I'm not missing it. If it is not supported and I'm
> not missing some much bigger problem with the idea can you make any
> suggestions about the least bad way to allow systems to do this?

No, we don't have support for this. Drivers should be careful about
such issues, but yes I can understand that we should think about
having support in the core code for such HW crap instead of cluttering
the drivers with such issues.

Though it's non-trivial. Think threaded interrupts, where we cannot
deal with that in handle_irq_edge(). I have no immediate idea how to
solve that at the core code, but feel free to have a stab.

Thanks,

tglx



--
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/