Re: Fwd: [RFC] IRQ type flags

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 07, 2005 at 12:42:20PM +0000, Ben Dooks wrote:
> On Sun, Nov 06, 2005 at 08:40:12AM +0000, Russell King wrote:
> > I haven't had any feedback on this patch.  akpm - can you add it to -mm
> > please?  Here's the sign-off for it, thanks.
> > 
> > Signed-off-by: Russell King <[email protected]>
> > 
> > ----- Forwarded message from Russell King <[email protected]> -----
> > Date:	Fri, 28 Oct 2005 22:57:47 +0100
> > From:	Russell King <[email protected]>
> > To:	Linux Kernel List <[email protected]>
> > Subject: [RFC] IRQ type flags
> > 
> > Hi,
> > 
> > Some ARM platforms have the ability to program the interrupt controller
> > to detect various interrupt edges and/or levels.  For some platforms,
> > this is critical to setup correctly, particularly those which the
> > setting is dependent on the device.
> > 
> > Currently, ARM drivers do (eg) the following:
> > 
> > 	err = request_irq(irq, ...);
> > 
> > 	set_irq_type(irq, IRQT_RISING);
> > 
> > However, if the interrupt has previously been programmed to be level
> > sensitive (for whatever reason) then this will cause an interrupt
> > storm.
> 
> surely, thats the other way around, going from edge to level.

No.  How can an edge triggered interrupt possibly cause a storm?

If the interrupt signal is at logic '0' and it was previously
configured for a low level to interrupt, when you call request_irq()
with your handler, the interrupt will be enabled.

Because it's level sensitive, it'll immediately interrupt, and
the handler will be invoked.  When the handler returns, the interrupt
signal will still be at logic '0' so it's still active.  So you
immediately get another interrupt and the handler will be re-invoked.
Repeat infinitely.

So it is exactly as I describe.

> How about making these compatible with the
> triggers compatible with the flags from
> include/linux/ioport.h definitions for the
> IRQ resource (IORESOURCE_IRQ_*). 

We could do, but I took the set_irq_type() implementation. 8)  We
could change both to conform.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux