]> err.no Git - linux-2.6/blobdiff - drivers/scsi/aic7xxx/aic7770_osm.c
Merge commit 'v2.6.27-rc1' into x86/urgent
[linux-2.6] / drivers / scsi / aic7xxx / aic7770_osm.c
index d4ed5e9f830a29d8ec72bd442f2fe710552ef309..f220e5e436ab9b762f42bda40365be70580da4ad 100644 (file)
@@ -50,7 +50,7 @@ aic7770_map_registers(struct ahc_softc *ahc, u_int port)
        /*
         * Lock out other contenders for our i/o space.
         */
-       if (request_region(port, AHC_EISA_IOSIZE, "aic7xxx") == 0)
+       if (!request_region(port, AHC_EISA_IOSIZE, "aic7xxx"))
                return (ENOMEM);
        ahc->tag = BUS_SPACE_PIO;
        ahc->bsh.ioport = port;
@@ -65,7 +65,7 @@ aic7770_map_int(struct ahc_softc *ahc, u_int irq)
 
        shared = 0;
        if ((ahc->flags & AHC_EDGE_INTERRUPT) == 0)
-               shared = SA_SHIRQ;
+               shared = IRQF_SHARED;
 
        error = request_irq(irq, ahc_linux_isr, shared, "aic7xxx", ahc);
        if (error == 0)
@@ -102,8 +102,7 @@ aic7770_probe(struct device *dev)
 
        dev_set_drvdata(dev, ahc);
 
-       if (aic7xxx_detect_complete)
-               error = ahc_linux_register_host(ahc, &aic7xxx_driver_template);
+       error = ahc_linux_register_host(ahc, &aic7xxx_driver_template);
        return (error);
 }
 
@@ -113,6 +112,9 @@ aic7770_remove(struct device *dev)
        struct ahc_softc *ahc = dev_get_drvdata(dev);
        u_long s;
 
+       if (ahc->platform_data && ahc->platform_data->host)
+                       scsi_remove_host(ahc->platform_data->host);
+
        ahc_lock(ahc, &s);
        ahc_intr_enable(ahc, FALSE);
        ahc_unlock(ahc, &s);
@@ -130,7 +132,8 @@ static struct eisa_device_id aic7770_ids[] = {
        { "ADP7770", 5 }, /* AIC7770 generic */
        { "" }
 };
-  
+MODULE_DEVICE_TABLE(eisa, aic7770_ids);
+
 static struct eisa_driver aic7770_driver = {
        .id_table       = aic7770_ids,
        .driver = {