On Tue, 13 Mar 2007 04:03:00 +0900 Tejun Heo <htejun@xxxxxxxxx> wrote: > Stephen Hemminger wrote: > >> 1. the controller has IRQ stuck high (infrequent but possible) > >> 2. the IRQ is already requested by another device > >> 3. the IRQ gets disabled due to screaming interrupts at the moment > >> ata_piix does pci_enable_device(). > >> > >> I think we can be much more resilient to screaming interrupts if we > >> enable device with IRQ disabled and enable it after the device is > >> initialized to some level, possibly when requesting IRQ. > > > > The first thing the skge driver does is do a chip reset, and that should > > cause IRQ to be disabled and cleared. The driver has no chance to > > fix it if the BIOS left the IRQ screaming... > > What if we do something like... > > pci_intx(pdev, 0); > pci_enable_device(pdev); > /* initialize */ > request_irq(blah blah...); > pci_intx(pdev, 1); > > Would this work for skge? > Okay for testing, but any change like this should be done in the base PCI layer, not one off in a particular driver. -- Stephen Hemminger <shemminger@xxxxxxxxxxxxxxxxxxxx> - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html