The DAC960 driver looks at PCI_Device->irq before calling
pci_enable_device(), which means it requests the wrong IRQ and hangs.
This fixes it.
Thanks to Johannes Rommel for reporting the problem and testing the fix.
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
DAC960_Controller_T *Controller = NULL;
unsigned char DeviceFunction = PCI_Device->devfn;
unsigned char ErrorStatus, Parameter0, Parameter1;
- unsigned int IRQ_Channel = PCI_Device->irq;
+ unsigned int IRQ_Channel;
void __iomem *BaseAddress;
int i;
/*
Acquire shared access to the IRQ Channel.
*/
+ IRQ_Channel = PCI_Device->irq;
if (request_irq(IRQ_Channel, InterruptHandler, SA_SHIRQ,
Controller->FullModelName, Controller) < 0)
{