vserver 1.9.5.x5
[linux-2.6.git] / drivers / ide / pci / amd74xx.c
index 30bdcb3..47225e3 100644 (file)
@@ -416,6 +416,9 @@ static void __init init_hwif_amd74xx(ide_hwif_t *hwif)
 {
        int i;
 
+       if (hwif->irq == 0) /* 0 is bogus but will do for now */
+               hwif->irq = pci_get_legacy_ide_irq(hwif->pci_dev, hwif->channel);
+
        hwif->autodma = 0;
 
        hwif->tuneproc = &amd74xx_tune_drive;
@@ -490,9 +493,12 @@ static int __devinit amd74xx_probe(struct pci_dev *dev, const struct pci_device_
 {
        amd_chipset = amd74xx_chipsets + id->driver_data;
        amd_config = amd_ide_chips + id->driver_data;
-       if (dev->device != amd_config->id) BUG();
-       ide_setup_pci_device(dev, amd_chipset);
-       return 0;
+       if (dev->device != amd_config->id) {
+               printk(KERN_ERR "%s: assertion 0x%02x == 0x%02x failed !\n",
+                      pci_name(dev), dev->device, amd_config->id);
+               return -ENODEV;
+       }
+       return ide_setup_pci_device(dev, amd_chipset);
 }
 
 static struct pci_device_id amd74xx_pci_tbl[] = {
@@ -520,7 +526,7 @@ static struct pci_device_id amd74xx_pci_tbl[] = {
 MODULE_DEVICE_TABLE(pci, amd74xx_pci_tbl);
 
 static struct pci_driver driver = {
-       .name           = "AMD IDE",
+       .name           = "AMD_IDE",
        .id_table       = amd74xx_pci_tbl,
        .probe          = amd74xx_probe,
 };