patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / drivers / scsi / qlogicpti.c
index c3ba6c2..c49ca7f 100644 (file)
 #include <linux/init.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
+#include <linux/module.h>
 
 #include <asm/byteorder.h>
 
-#include "scsi.h"
-#include "hosts.h"
 #include "qlogicpti.h"
 
 #include <asm/sbus.h>
 #include <asm/io.h>
 #include <asm/irq.h>
 
-#include <linux/module.h>
+#include <scsi/scsi.h>
+#include <scsi/scsi_cmnd.h>
+#include <scsi/scsi_device.h>
+#include <scsi/scsi_eh.h>
+#include <scsi/scsi_request.h>
+#include <scsi/scsi_tcq.h>
+#include <scsi/scsi_host.h>
+
+
 
 #define MAX_TARGETS    16
 #define MAX_LUNS       8       /* 32 for 1.31 F/W */
@@ -809,7 +816,7 @@ static int __init qpti_map_queues(struct qlogicpti *qpti)
 }
 
 /* Detect all PTI Qlogic ISP's in the machine. */
-static int __init qlogicpti_detect(Scsi_Host_Template *tpnt)
+static int __init qlogicpti_detect(struct scsi_host_template *tpnt)
 {
        struct qlogicpti *qpti;
        struct Scsi_Host *qpti_host;
@@ -878,7 +885,7 @@ static int __init qlogicpti_detect(Scsi_Host_Template *tpnt)
                        qpti_get_bursts(qpti);
                        qpti_get_clock(qpti);
 
-                       /* Clear out Scsi_Cmnd array. */
+                       /* Clear out scsi_cmnd array. */
                        memset(qpti->cmd_slots, 0, sizeof(qpti->cmd_slots));
 
                        if (qpti_map_queues(qpti) < 0)
@@ -997,7 +1004,7 @@ static inline void marker_frob(struct Command_Entry *cmd)
        marker->rsvd = 0;
 }
 
-static inline void cmd_frob(struct Command_Entry *cmd, Scsi_Cmnd *Cmnd,
+static inline void cmd_frob(struct Command_Entry *cmd, struct scsi_cmnd *Cmnd,
                            struct qlogicpti *qpti)
 {
        memset(cmd, 0, sizeof(struct Command_Entry));
@@ -1027,7 +1034,7 @@ static inline void cmd_frob(struct Command_Entry *cmd, Scsi_Cmnd *Cmnd,
 }
 
 /* Do it to it baby. */
-static inline int load_cmd(Scsi_Cmnd *Cmnd, struct Command_Entry *cmd,
+static inline int load_cmd(struct scsi_cmnd *Cmnd, struct Command_Entry *cmd,
                           struct qlogicpti *qpti, u_int in_ptr, u_int out_ptr)
 {
        struct dataseg *ds;
@@ -1038,7 +1045,7 @@ static inline int load_cmd(Scsi_Cmnd *Cmnd, struct Command_Entry *cmd,
                int sg_count;
 
                sg = (struct scatterlist *) Cmnd->buffer;
-               sg_count = sbus_map_sg(qpti->sdev, sg, Cmnd->use_sg, scsi_to_sbus_dma_dir(Cmnd->sc_data_direction));
+               sg_count = sbus_map_sg(qpti->sdev, sg, Cmnd->use_sg, Cmnd->sc_data_direction);
 
                ds = cmd->dataseg;
                cmd->segment_cnt = sg_count;
@@ -1081,7 +1088,7 @@ static inline int load_cmd(Scsi_Cmnd *Cmnd, struct Command_Entry *cmd,
                        sbus_map_single(qpti->sdev,
                                        Cmnd->request_buffer,
                                        Cmnd->request_bufflen,
-                                       scsi_to_sbus_dma_dir(Cmnd->sc_data_direction));
+                                       Cmnd->sc_data_direction);
 
                cmd->dataseg[0].d_base = (u32) ((unsigned long)Cmnd->SCp.ptr);
                cmd->dataseg[0].d_count = Cmnd->request_bufflen;
@@ -1115,11 +1122,11 @@ static inline void update_can_queue(struct Scsi_Host *host, u_int in_ptr, u_int
 /*
  * Until we scan the entire bus with inquiries, go throught this fella...
  */
-static void ourdone(Scsi_Cmnd *Cmnd)
+static void ourdone(struct scsi_cmnd *Cmnd)
 {
        struct qlogicpti *qpti = (struct qlogicpti *) Cmnd->device->host->hostdata;
        int tgt = Cmnd->device->id;
-       void (*done) (Scsi_Cmnd *);
+       void (*done) (struct scsi_cmnd *);
 
        /* This grot added by DaveM, blame him for ugliness.
         * The issue is that in the 2.3.x driver we use the
@@ -1127,7 +1134,7 @@ static void ourdone(Scsi_Cmnd *Cmnd)
         * completion linked list at interrupt service time,
         * so we have to store the done function pointer elsewhere.
         */
-       done = (void (*)(Scsi_Cmnd *))
+       done = (void (*)(struct scsi_cmnd *))
                (((unsigned long) Cmnd->SCp.Message)
 #ifdef __sparc_v9__
                 | ((unsigned long) Cmnd->SCp.Status << 32UL)
@@ -1164,10 +1171,10 @@ static void ourdone(Scsi_Cmnd *Cmnd)
        done(Cmnd);
 }
 
-static int qlogicpti_queuecommand(Scsi_Cmnd *Cmnd, void (*done)(Scsi_Cmnd *));
+static int qlogicpti_queuecommand(struct scsi_cmnd *Cmnd, void (*done)(struct scsi_cmnd *));
 
-static int qlogicpti_queuecommand_slow(Scsi_Cmnd *Cmnd,
-                                      void (*done)(Scsi_Cmnd *))
+static int qlogicpti_queuecommand_slow(struct scsi_cmnd *Cmnd,
+                                      void (*done)(struct scsi_cmnd *))
 {
        struct qlogicpti *qpti = (struct qlogicpti *) Cmnd->device->host->hostdata;
 
@@ -1238,7 +1245,7 @@ static int qlogicpti_queuecommand_slow(Scsi_Cmnd *Cmnd,
  *
  * "This code must fly." -davem
  */
-static int qlogicpti_queuecommand(Scsi_Cmnd *Cmnd, void (*done)(Scsi_Cmnd *))
+static int qlogicpti_queuecommand(struct scsi_cmnd *Cmnd, void (*done)(struct scsi_cmnd *))
 {
        struct Scsi_Host *host = Cmnd->device->host;
        struct qlogicpti *qpti = (struct qlogicpti *) host->hostdata;
@@ -1351,9 +1358,9 @@ static int qlogicpti_return_status(struct Status_Entry *sts, int id)
        return (sts->scsi_status & STATUS_MASK) | (host_status << 16);
 }
 
-static Scsi_Cmnd *qlogicpti_intr_handler(struct qlogicpti *qpti)
+static struct scsi_cmnd *qlogicpti_intr_handler(struct qlogicpti *qpti)
 {
-       Scsi_Cmnd *Cmnd, *done_queue = NULL;
+       struct scsi_cmnd *Cmnd, *done_queue = NULL;
        struct Status_Entry *sts;
        u_int in_ptr, out_ptr;
 
@@ -1412,12 +1419,12 @@ static Scsi_Cmnd *qlogicpti_intr_handler(struct qlogicpti *qpti)
                        sbus_unmap_sg(qpti->sdev,
                                      (struct scatterlist *)Cmnd->buffer,
                                      Cmnd->use_sg,
-                                     scsi_to_sbus_dma_dir(Cmnd->sc_data_direction));
+                                     Cmnd->sc_data_direction);
                } else {
                        sbus_unmap_single(qpti->sdev,
                                          (__u32)((unsigned long)Cmnd->SCp.ptr),
                                          Cmnd->request_bufflen,
-                                         scsi_to_sbus_dma_dir(Cmnd->sc_data_direction));
+                                         Cmnd->sc_data_direction);
                }
                qpti->cmd_count[Cmnd->device->id]--;
                sbus_writew(out_ptr, qpti->qregs + MBOX5);
@@ -1433,16 +1440,16 @@ static irqreturn_t qpti_intr(int irq, void *dev_id, struct pt_regs *regs)
 {
        struct qlogicpti *qpti = dev_id;
        unsigned long flags;
-       Scsi_Cmnd *dq;
+       struct scsi_cmnd *dq;
 
        spin_lock_irqsave(qpti->qhost->host_lock, flags);
        dq = qlogicpti_intr_handler(qpti);
 
        if (dq != NULL) {
                do {
-                       Scsi_Cmnd *next;
+                       struct scsi_cmnd *next;
 
-                       next = (Scsi_Cmnd *) dq->host_scribble;
+                       next = (struct scsi_cmnd *) dq->host_scribble;
                        dq->scsi_done(dq);
                        dq = next;
                } while (dq != NULL);
@@ -1452,7 +1459,7 @@ static irqreturn_t qpti_intr(int irq, void *dev_id, struct pt_regs *regs)
        return IRQ_HANDLED;
 }
 
-static int qlogicpti_abort(Scsi_Cmnd *Cmnd)
+static int qlogicpti_abort(struct scsi_cmnd *Cmnd)
 {
        u_short param[6];
        struct Scsi_Host *host = Cmnd->device->host;
@@ -1489,7 +1496,7 @@ static int qlogicpti_abort(Scsi_Cmnd *Cmnd)
        return return_status;
 }
 
-static int qlogicpti_reset(Scsi_Cmnd *Cmnd)
+static int qlogicpti_reset(struct scsi_cmnd *Cmnd)
 {
        u_short param[6];
        struct Scsi_Host *host = Cmnd->device->host;
@@ -1513,7 +1520,7 @@ static int qlogicpti_reset(Scsi_Cmnd *Cmnd)
        return return_status;
 }
 
-static Scsi_Host_Template driver_template = {
+static struct scsi_host_template driver_template = {
        .detect                 = qlogicpti_detect,
        .release                = qlogicpti_release,
        .info                   = qlogicpti_info,