[SCSI] qla2xxx: Generalize iIDMA support.
authorAndrew Vasquez <andrew.vasquez@qlogic.com>
Thu, 19 Jul 2007 22:05:57 +0000 (15:05 -0700)
committerJames Bottomley <jejb@mulgrave.localdomain>
Fri, 20 Jul 2007 14:02:04 +0000 (09:02 -0500)
In preparation for new ISP types.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/qla2xxx/qla_def.h
drivers/scsi/qla2xxx/qla_gs.c
drivers/scsi/qla2xxx/qla_init.c
drivers/scsi/qla2xxx/qla_mbx.c
drivers/scsi/qla2xxx/qla_os.c

index b818c43e2f9eedcd86a7188a3996e6bdf255ef03..d505c0456de37722069de5b5c9e9c8beb86245ee 100644 (file)
@@ -2215,6 +2215,7 @@ typedef struct scsi_qla_host {
 #define DT_ISP5432                     BIT_10
 #define DT_ISP_LAST                    (DT_ISP5432 << 1)
 
+#define DT_IIDMA                       BIT_26
 #define DT_FWI2                                BIT_27
 #define DT_ZIO_SUPPORTED               BIT_28
 #define DT_OEM_001                     BIT_29
@@ -2239,6 +2240,7 @@ typedef struct scsi_qla_host {
 #define IS_QLA24XX(ha) (IS_QLA2422(ha) || IS_QLA2432(ha))
 #define IS_QLA54XX(ha) (IS_QLA5422(ha) || IS_QLA5432(ha))
 
+#define IS_IIDMA_CAPABLE(ha)   ((ha)->device_type & DT_IIDMA)
 #define IS_FWI2_CAPABLE(ha)    ((ha)->device_type & DT_FWI2)
 #define IS_ZIO_SUPPORTED(ha)   ((ha)->device_type & DT_ZIO_SUPPORTED)
 #define IS_OEM_001(ha)         ((ha)->device_type & DT_OEM_001)
index 16de9173719ebf4221d1ee64c6b2a8f1b9376f44..9be312331bcc21698baa79d47b392f6bae7251bc 100644 (file)
@@ -1678,7 +1678,7 @@ qla2x00_gfpn_id(scsi_qla_host_t *ha, sw_info_t *list)
        struct ct_sns_req       *ct_req;
        struct ct_sns_rsp       *ct_rsp;
 
-       if (!IS_FWI2_CAPABLE(ha))
+       if (!IS_IIDMA_CAPABLE(ha))
                return QLA_FUNCTION_FAILED;
 
        for (i = 0; i < MAX_FIBRE_DEVICES; i++) {
@@ -1786,7 +1786,7 @@ qla2x00_gpsc(scsi_qla_host_t *ha, sw_info_t *list)
        struct ct_sns_req       *ct_req;
        struct ct_sns_rsp       *ct_rsp;
 
-       if (!IS_FWI2_CAPABLE(ha))
+       if (!IS_IIDMA_CAPABLE(ha))
                return QLA_FUNCTION_FAILED;
        if (!ha->flags.gpsc_supported)
                return QLA_FUNCTION_FAILED;
index 7e53814daaa5ecba866243375dd5d5d462199b74..dbf64bb1f3dbacf5ab11ee3f3cc00e6d1690fa92 100644 (file)
@@ -2119,7 +2119,7 @@ qla2x00_iidma_fcport(scsi_qla_host_t *ha, fc_port_t *fcport)
        int rval;
        uint16_t port_speed, mb[6];
 
-       if (!IS_QLA24XX(ha))
+       if (!IS_IIDMA_CAPABLE(ha))
                return;
 
        switch (be16_to_cpu(fcport->fp_speed)) {
index 321acc2c98c6158bf171b70b11082a8bd8b45100..d3746ec80a857a3e1b9557378055382259b72dca 100644 (file)
@@ -2552,7 +2552,7 @@ qla2x00_get_idma_speed(scsi_qla_host_t *ha, uint16_t loop_id,
        mbx_cmd_t mc;
        mbx_cmd_t *mcp = &mc;
 
-       if (!IS_QLA24XX(ha))
+       if (!IS_IIDMA_CAPABLE(ha))
                return QLA_FUNCTION_FAILED;
 
        DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no));
@@ -2595,7 +2595,7 @@ qla2x00_set_idma_speed(scsi_qla_host_t *ha, uint16_t loop_id,
        mbx_cmd_t mc;
        mbx_cmd_t *mcp = &mc;
 
-       if (!IS_QLA24XX(ha))
+       if (!IS_IIDMA_CAPABLE(ha))
                return QLA_FUNCTION_FAILED;
 
        DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no));
index e246f944957dab324b4f03ebf508e0e1788cde82..d19fd7978f83fcc8518b4878fdbd718e1d917c02 100644 (file)
@@ -1239,12 +1239,14 @@ qla2x00_set_isp_flags(scsi_qla_host_t *ha)
                ha->device_type |= DT_ISP2422;
                ha->device_type |= DT_ZIO_SUPPORTED;
                ha->device_type |= DT_FWI2;
+               ha->device_type |= DT_IIDMA;
                ha->fw_srisc_address = RISC_START_ADDRESS_2400;
                break;
        case PCI_DEVICE_ID_QLOGIC_ISP2432:
                ha->device_type |= DT_ISP2432;
                ha->device_type |= DT_ZIO_SUPPORTED;
                ha->device_type |= DT_FWI2;
+               ha->device_type |= DT_IIDMA;
                ha->fw_srisc_address = RISC_START_ADDRESS_2400;
                break;
        case PCI_DEVICE_ID_QLOGIC_ISP5422: