Re: better leve triggered IRQ management needed

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

 




On Mon, 24 Apr 2006, Linus Torvalds wrote:
> 
> You can get an edge by having your driver make sure that it clears the 
> interrupt source at some point where it requires an edge.

Btw, this is why we do end up saying that having _two_ devices share 
an edge-triggered setup really is something we cannot necessarily 
fix. That said, it is better to limp along and work as well as you can 
than to just throw up your hands.

So even then, we should at least give the user the _chance_ of being able 
to log in and give a bug-report, rather than "oops, the harddisk won't 
work, because the BIOS sets it up to share an edge-triggered interrupt 
with the network".

However, I'm all for printing out a honking huge warning if we have two 
devices sharing the same edge-triggered interrupt. But a single device 
should work, or the driver should be considered broken.

[ Btw, the "disable_irq()/enable_irq()" subsystem has been written so that 
  when you disable an edge-triggered interrupt, and the edge happens while 
  the interrupt is disabled, we will re-play the interrupt at enable time. 
  Exactly so that drivers can have an easier time and don't have to 
  normally worry about whether something is edge or level-triggered.

  However, if you're within an interrupt, that doesn't mean that you can 
  just disable the irq and hope that it acts as if it was level-triggered 
  when you enable it again. ]

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