NCR53C815 vs Tulip: sharing IRQ fails
Donald Becker
becker@cesdis1.gsfc.nasa.gov
Mon Mar 22 17:23:34 1999
On Mon, 22 Mar 1999, Gerard Roudier wrote:
> > Read the instructions in
> > http://cesdis.gsfc.nasa.gov/linux/misc/irq-conflict.html
> > for info on how to fix the SCSI driver -- it's using the wrong flags for
> > requesting the interrupt.
>
> What wrong flags?
> It is Linux not having provided the right set of flags for request_irq()
> that confused for a long time IRQ sharing on PCI. A PCI device driver just
> wants to tell the kernel the IRQ is from a PCI device and so must be
> shared. It is what SA_SHIRQ is telling the kernel. The fact that the
> SA_INTERRUPT used at the same time may disallow sharing a shareable IRQ
> when all involved drivers aren't using it the same way has been a kernel
> bug or just some useless feature that made shit.
Just to clarify, since some readers might be confused:
**** Using SA_INTERRUPT is broken. ***
It's semantically incompatible with sharing an interrupt line.
It was never intended to be used in the way that the SCSI drivers use it.
> Sun Feb 14:00 1999 Gerard Roudier (groudier@club-internet.fr)
> - Allow to tune request_irq() flags from the boot command line using
> ncr53c8xx=irqm:??, as follows:
> a) If bit 0x10 is set in irqm, SA_SHIRQ flag is not used.
> b) If bit 0x20 is set in irqm, SA_INTERRUPT flag is not used.
> By default the driver uses both SA_SHIRQ and SA_INTERRUPT.
The driver should not be using SA_INTERRUPT at all.
If it must keep it around for some horribly broken reason, it should default
to not using it.
Donald Becker becker@cesdis.gsfc.nasa.gov
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center, Greenbelt, MD. 20771
301-286-0882 http://cesdis.gsfc.nasa.gov/people/becker/whoiam.html