]> err.no Git - linux-2.6/blobdiff - drivers/scsi/imm.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
[linux-2.6] / drivers / scsi / imm.c
index be7f2ca0183fdcaccb16ab7c8197a4084258e147..681bd18493f3c1afd29825330bcf7caa06f1b5cd 100644 (file)
@@ -3,9 +3,6 @@
  * 
  * (The IMM is the embedded controller in the ZIP Plus drive.)
  * 
- * Current Maintainer: David Campbell (Perth, Western Australia)
- *                     campbell@torque.net
- *
  * My unoffical company acronym list is 21 pages long:
  *      FLA:    Four letter acronym with built in facility for
  *              future expansion to five letters.
@@ -18,6 +15,7 @@
 #include <linux/blkdev.h>
 #include <linux/parport.h>
 #include <linux/workqueue.h>
+#include <linux/delay.h>
 #include <asm/io.h>
 
 #include <scsi/scsi.h>
@@ -610,9 +608,9 @@ static int imm_init(imm_struct *dev)
        if (imm_connect(dev, 0) != 1)
                return -EIO;
        imm_reset_pulse(dev->base);
-       udelay(1000);   /* Delay to allow devices to settle */
+       mdelay(1);      /* Delay to allow devices to settle */
        imm_disconnect(dev);
-       udelay(1000);   /* Another delay to allow devices to settle */
+       mdelay(1);      /* Another delay to allow devices to settle */
        return device_check(dev);
 }
 
@@ -829,7 +827,7 @@ static int imm_engine(imm_struct *dev, struct scsi_cmnd *cmd)
 
                /* Phase 2 - We are now talking to the scsi bus */
        case 2:
-               if (!imm_select(dev, cmd->device->id)) {
+               if (!imm_select(dev, scmd_id(cmd))) {
                        imm_fail(dev, DID_NO_CONNECT);
                        return 0;
                }
@@ -1026,9 +1024,9 @@ static int imm_reset(struct scsi_cmnd *cmd)
 
        imm_connect(dev, CONNECT_NORMAL);
        imm_reset_pulse(dev->base);
-       udelay(1000);           /* device settle delay */
+       mdelay(1);              /* device settle delay */
        imm_disconnect(dev);
-       udelay(1000);           /* device settle delay */
+       mdelay(1);              /* device settle delay */
        return SUCCESS;
 }
 
@@ -1118,6 +1116,10 @@ static int device_check(imm_struct *dev)
        return -ENODEV;
 }
 
+/*
+ * imm cannot deal with highmem, so this causes all IO pages for this host
+ * to reside in low memory (hence mapped)
+ */
 static int imm_adjust_queue(struct scsi_device *device)
 {
        blk_queue_bounce_limit(device->request_queue, BLK_BOUNCE_HIGH);
@@ -1140,10 +1142,6 @@ static struct scsi_host_template imm_template = {
        .use_clustering         = ENABLE_CLUSTERING,
        .can_queue              = 1,
        .slave_alloc            = imm_adjust_queue,
-       .unchecked_isa_dma      = 1, /* imm cannot deal with highmem, so
-                                     * this is an easy trick to ensure
-                                     * all io pages for this host reside
-                                     * in low memory */
 };
 
 /***************************************************************************