[lkml]   [2007]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: genirq: Add a set_irq_handler_locked() function
On Mon, Feb 12, 2007 at 02:17:28PM +1100, David Gibson wrote:
> On Fri, Feb 09, 2007 at 07:36:40AM +0000, Russell King wrote:
> > On Fri, Feb 09, 2007 at 02:48:42PM +1100, David Gibson wrote:
> > > At present set_irq_handler() and all the existing variants take the
> > > desc->lock for the irq in question before adjusting the irq's flow
> > > handler. This can cause problems for irq chips for which a given
> > > interrupt can be either level or edge depending on what's attached.
> >
> > Are you sure you need to change the flow handler depending on how
> > you program the device?
> >
> > Since the outset of this design, I've had what are essentially edge
> > based interrupt sources using the "level" handlers because they haven't
> > had a "broken" edge implementation. By that, I mean that the masking
> > is done in such a way that you miss edges when the source is masked.
> >
> > If you do not miss edges while the source is masked, there's no point
> > in having the complexity of the "edge" based handler in the path - it
> > buys you nothing. Just use the "level" handler instead.
> I see... how terribly obvious.

Do you have a better way of naming the functions?

> As far as I know, the 4xx UIC does things correctly, though I don't
> have handy any devices with edge interrupts to test it with.
> It would still be nice to have this change, so we can use the
> lazy-masking from handle_edge_irq(), but I guess I can do without it
> for now.

If you have correct behaviour from your interrupt controller for edge
based interrupts, you don't need the lazy masking, so why make things
complicated in this way?

Russell King
Linux kernel 2.6 ARM Linux -
maintainer of:
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2007-02-12 10:39    [W:0.054 / U:6.712 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site