[SCSI] qla2xxx: Drop unused driver cruft.
[safe/jmp/linux-2.6] / drivers / scsi / ipr.h
index c9cc40e..1ad24df 100644 (file)
@@ -36,8 +36,8 @@
 /*
  * Literals
  */
-#define IPR_DRIVER_VERSION "2.0.14"
-#define IPR_DRIVER_DATE "(May 2, 2005)"
+#define IPR_DRIVER_VERSION "2.1.3"
+#define IPR_DRIVER_DATE "(March 29, 2006)"
 
 /*
  * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding
 #define IPR_SUBS_DEV_ID_571A   0x02C0
 #define IPR_SUBS_DEV_ID_571B   0x02BE
 #define IPR_SUBS_DEV_ID_571E  0x02BF
+#define IPR_SUBS_DEV_ID_571F   0x02D5
+#define IPR_SUBS_DEV_ID_572A   0x02C1
+#define IPR_SUBS_DEV_ID_572B   0x02C2
+#define IPR_SUBS_DEV_ID_575B   0x030D
 
 #define IPR_NAME                               "ipr"
 
@@ -80,6 +84,7 @@
 #define IPR_IOASC_HW_DEV_BUS_STATUS                    0x04448500
 #define        IPR_IOASC_IOASC_MASK                    0xFFFFFF00
 #define        IPR_IOASC_SCSI_STATUS_MASK              0x000000FF
+#define IPR_IOASC_IR_INVALID_REQ_TYPE_OR_PKT   0x05240000
 #define IPR_IOASC_IR_RESOURCE_HANDLE           0x05250000
 #define IPR_IOASC_IR_NO_CMDS_TO_2ND_IOA                0x05258100
 #define IPR_IOASA_IR_DUAL_IOA_DISABLED         0x052C8000
 #define IPR_NUM_LOG_HCAMS                              2
 #define IPR_NUM_CFG_CHG_HCAMS                          2
 #define IPR_NUM_HCAMS  (IPR_NUM_LOG_HCAMS + IPR_NUM_CFG_CHG_HCAMS)
-#define IPR_MAX_NUM_TARGETS_PER_BUS                    0x10
+#define IPR_MAX_NUM_TARGETS_PER_BUS                    256
 #define IPR_MAX_NUM_LUNS_PER_TARGET                    256
 #define IPR_MAX_NUM_VSET_LUNS_PER_TARGET       8
 #define IPR_VSET_BUS                                   0xff
 #define IPR_IOA_BUS                                            0xff
 #define IPR_IOA_TARGET                                 0xff
 #define IPR_IOA_LUN                                            0xff
-#define IPR_MAX_NUM_BUSES                              4
+#define IPR_MAX_NUM_BUSES                              8
 #define IPR_MAX_BUS_TO_SCAN                            IPR_MAX_NUM_BUSES
 
 #define IPR_NUM_RESET_RELOAD_RETRIES           3
 #define IPR_MAX_SCSI_RATE(width) ((320 * 10) / ((width) / 8))
 
 #define IPR_IOA_RES_HANDLE                             0xffffffff
+#define IPR_INVALID_RES_HANDLE                 0
 #define IPR_IOA_RES_ADDR                               0x00ffffff
 
 /*
@@ -917,6 +923,7 @@ struct ipr_ioa_cfg {
        u8 dump_taken:1;
        u8 allow_cmds:1;
        u8 allow_ml_add_del:1;
+       u8 needs_hard_reset:1;
 
        enum ipr_cache_state cache_state;
        u16 type; /* CCIN of the card */
@@ -994,7 +1001,6 @@ struct ipr_ioa_cfg {
        struct Scsi_Host *host;
        struct pci_dev *pdev;
        struct ipr_sglist *ucode_sglist;
-       struct ipr_mode_pages *saved_mode_pages;
        u8 saved_mode_page_len;
 
        struct work_struct work_q;
@@ -1027,6 +1033,7 @@ struct ipr_cmnd {
        struct timer_list timer;
        void (*done) (struct ipr_cmnd *);
        int (*job_step) (struct ipr_cmnd *);
+       int (*job_step_failed) (struct ipr_cmnd *);
        u16 cmd_index;
        u8 sense_buffer[SCSI_SENSE_BUFFERSIZE];
        dma_addr_t sense_buffer_dma;
@@ -1185,30 +1192,17 @@ struct ipr_ucode_image_header {
  */
 #define ipr_err(...) printk(KERN_ERR IPR_NAME ": "__VA_ARGS__)
 #define ipr_info(...) printk(KERN_INFO IPR_NAME ": "__VA_ARGS__)
-#define ipr_crit(...) printk(KERN_CRIT IPR_NAME ": "__VA_ARGS__)
-#define ipr_warn(...) printk(KERN_WARNING IPR_NAME": "__VA_ARGS__)
 #define ipr_dbg(...) IPR_DBG_CMD(printk(KERN_INFO IPR_NAME ": "__VA_ARGS__))
 
-#define ipr_sdev_printk(level, sdev, fmt, args...) \
-       sdev_printk(level, sdev, fmt, ## args)
+#define ipr_ra_printk(level, ioa_cfg, ra, fmt, ...) \
+       printk(level IPR_NAME ": %d:%d:%d:%d: " fmt, (ioa_cfg)->host->host_no, \
+               (ra).bus, (ra).target, (ra).lun, ##__VA_ARGS__)
 
-#define ipr_sdev_err(sdev, fmt, ...) \
-       ipr_sdev_printk(KERN_ERR, sdev, fmt, ##__VA_ARGS__)
-
-#define ipr_sdev_info(sdev, fmt, ...) \
-       ipr_sdev_printk(KERN_INFO, sdev, fmt, ##__VA_ARGS__)
-
-#define ipr_sdev_dbg(sdev, fmt, ...) \
-       IPR_DBG_CMD(ipr_sdev_printk(KERN_INFO, sdev, fmt, ##__VA_ARGS__))
-
-#define ipr_res_printk(level, ioa_cfg, res, fmt, ...) \
-       printk(level IPR_NAME ": %d:%d:%d:%d: " fmt, ioa_cfg->host->host_no, \
-               res.bus, res.target, res.lun, ##__VA_ARGS__)
+#define ipr_ra_err(ioa_cfg, ra, fmt, ...) \
+       ipr_ra_printk(KERN_ERR, ioa_cfg, ra, fmt, ##__VA_ARGS__)
 
 #define ipr_res_err(ioa_cfg, res, fmt, ...) \
-       ipr_res_printk(KERN_ERR, ioa_cfg, res, fmt, ##__VA_ARGS__)
-#define ipr_res_dbg(ioa_cfg, res, fmt, ...) \
-       IPR_DBG_CMD(ipr_res_printk(KERN_INFO, ioa_cfg, res, fmt, ##__VA_ARGS__))
+       ipr_ra_err(ioa_cfg, (res)->cfgte.res_addr, fmt, ##__VA_ARGS__)
 
 #define ipr_phys_res_err(ioa_cfg, res, fmt, ...)                       \
 {                                                                      \
@@ -1298,6 +1292,22 @@ static inline int ipr_is_gscsi(struct ipr_resource_entry *res)
 }
 
 /**
+ * ipr_is_scsi_disk - Determine if a resource is a SCSI disk
+ * @res:       resource entry struct
+ *
+ * Return value:
+ *     1 if SCSI disk / 0 if not SCSI disk
+ **/
+static inline int ipr_is_scsi_disk(struct ipr_resource_entry *res)
+{
+       if (ipr_is_af_dasd_device(res) ||
+           (ipr_is_gscsi(res) && IPR_IS_DASD_DEVICE(res->cfgte.std_inq_data)))
+               return 1;
+       else
+               return 0;
+}
+
+/**
  * ipr_is_naca_model - Determine if a resource is using NACA queueing model
  * @res:       resource entry struct
  *
@@ -1321,7 +1331,7 @@ static inline int ipr_is_naca_model(struct ipr_resource_entry *res)
 static inline int ipr_is_device(struct ipr_res_addr *res_addr)
 {
        if ((res_addr->bus < IPR_MAX_NUM_BUSES) &&
-           (res_addr->target < IPR_MAX_NUM_TARGETS_PER_BUS))
+           (res_addr->target < (IPR_MAX_NUM_TARGETS_PER_BUS - 1)))
                return 1;
 
        return 0;