delkin_cb: fix resources handling
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 26 Apr 2008 15:36:38 +0000 (17:36 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 26 Apr 2008 15:36:38 +0000 (17:36 +0200)
Tell IDE layer to not manage resources by setting hwif->mmio flag.

Cc: Mark Lord <mlord@pobox.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/pci/delkin_cb.c

index 53857f8096674a709c83bb5e779b125f1e33e40d..753b86fc66375366192d00f29f37123d811be7a5 100644 (file)
@@ -71,7 +71,6 @@ delkin_cb_probe (struct pci_dev *dev, const struct pci_device_id *id)
                if (setup[i])
                        outb(setup[i], base + i);
        }
-       pci_release_regions(dev);       /* IDE layer handles regions itself */
 
        memset(&hw, 0, sizeof(hw));
        ide_std_init_ports(&hw, base + 0x10, base + 0x1e);
@@ -90,6 +89,7 @@ delkin_cb_probe (struct pci_dev *dev, const struct pci_device_id *id)
                ide_init_port_data(hwif, i);
 
        ide_init_port_hw(hwif, &hw);
+       hwif->mmio = 1;
        hwif->quirkproc = &ide_undecoded_slave;
 
        idx[0] = i;
@@ -110,6 +110,7 @@ delkin_cb_probe (struct pci_dev *dev, const struct pci_device_id *id)
 
 out_disable:
        printk(KERN_ERR "delkin_cb: no IDE devices found\n");
+       pci_release_regions(dev);
        pci_disable_device(dev);
        return -ENODEV;
 }
@@ -122,6 +123,7 @@ delkin_cb_remove (struct pci_dev *dev)
        if (hwif)
                ide_unregister(hwif->index);
 
+       pci_release_regions(dev);
        pci_disable_device(dev);
 }