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