lkml.org 
[lkml]   [2006]   [Apr]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: better leve triggered IRQ management needed


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 majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2009-11-18 23:46    [W:0.110 / U:0.136 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site