As of Linux-2.1.123, intel Linux/SMP will query the so-called ELCR
("Edge/Level Control Register") to find out whether a legacy IRQ is
supposed to be edge-triggered or level-triggered. 

The problem for me is that I seem to have no clue about the polarity of
the interrupt.  The (scant) documentation I have seems to imply that
level-triggered interrupts are always active low, and that the polarity
should thus be "1" in the IO-APIC.  And that works apparently correctly
on the machines I had access to (admittedly few of them actually use
many legacy interrupts - one of the joys of having recent hardware). 

However, I also have a report of one machine where it appears that the
level-trigger interrupts are active high.  And my changes result in
endless interrupts on such a machine.  Understandable, but incorrect ;)

I can make it a bootup option, but it would be even better if somebody
out there has a clue, and can tell me that "duh, Linus, you're just
being dense, look at line XXXX in manual YYYY and they tell you that
..."

Any clues? I may end up having to disable the new code unless something
better comes along.. 

                Linus

Reply via email to