diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c index b15cad58dc81..a95d51080237 100644 --- a/drivers/ide/setup-pci.c +++ b/drivers/ide/setup-pci.c @@ -499,20 +499,21 @@ static int do_ide_setup_pci_device(struct pci_dev *dev, */ pciirq = dev->irq; + /* + * This allows offboard ide-pci cards the enable a BIOS, + * verify interrupt settings of split-mirror pci-config + * space, place chipset into init-mode, and/or preserve + * an interrupt if the card is not native ide support. + */ + ret = d->init_chipset ? d->init_chipset(dev, d->name) : 0; + if (ret < 0) + goto out; + /* Is it an "IDE storage" device in non-PCI mode? */ if ((dev->class >> 8) == PCI_CLASS_STORAGE_IDE && (dev->class & 5) != 5) { if (noisy) printk(KERN_INFO "%s: not 100%% native mode: " "will probe irqs later\n", d->name); - /* - * This allows offboard ide-pci cards the enable a BIOS, - * verify interrupt settings of split-mirror pci-config - * space, place chipset into init-mode, and/or preserve - * an interrupt if the card is not native ide support. - */ - ret = d->init_chipset ? d->init_chipset(dev, d->name) : 0; - if (ret < 0) - goto out; pciirq = ret; } else if (tried_config) { if (noisy) @@ -524,11 +525,6 @@ static int do_ide_setup_pci_device(struct pci_dev *dev, d->name, pciirq); pciirq = 0; } else { - if (d->init_chipset) { - ret = d->init_chipset(dev, d->name); - if (ret < 0) - goto out; - } if (noisy) printk(KERN_INFO "%s: 100%% native mode on irq %d\n", d->name, pciirq);