diff options
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_attr.c | 8 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 2 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_gs.c | 10 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 8 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_inline.h | 2 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_iocb.c | 6 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 16 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 54 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 8 |
9 files changed, 60 insertions, 54 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 3eb2208675ae..e406eae3e08d 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c | |||
| @@ -119,7 +119,7 @@ qla2x00_sysfs_write_nvram(struct kobject *kobj, | |||
| 119 | return 0; | 119 | return 0; |
| 120 | 120 | ||
| 121 | /* Checksum NVRAM. */ | 121 | /* Checksum NVRAM. */ |
| 122 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 122 | if (IS_FWI2_CAPABLE(ha)) { |
| 123 | uint32_t *iter; | 123 | uint32_t *iter; |
| 124 | uint32_t chksum; | 124 | uint32_t chksum; |
| 125 | 125 | ||
| @@ -410,7 +410,7 @@ qla2x00_alloc_sysfs_attr(scsi_qla_host_t *ha) | |||
| 410 | int ret; | 410 | int ret; |
| 411 | 411 | ||
| 412 | for (iter = bin_file_entries; iter->name; iter++) { | 412 | for (iter = bin_file_entries; iter->name; iter++) { |
| 413 | if (iter->is4GBp_only && (!IS_QLA24XX(ha) && !IS_QLA54XX(ha))) | 413 | if (iter->is4GBp_only && !IS_FWI2_CAPABLE(ha)) |
| 414 | continue; | 414 | continue; |
| 415 | 415 | ||
| 416 | ret = sysfs_create_bin_file(&host->shost_gendev.kobj, | 416 | ret = sysfs_create_bin_file(&host->shost_gendev.kobj, |
| @@ -429,7 +429,7 @@ qla2x00_free_sysfs_attr(scsi_qla_host_t *ha) | |||
| 429 | struct sysfs_entry *iter; | 429 | struct sysfs_entry *iter; |
| 430 | 430 | ||
| 431 | for (iter = bin_file_entries; iter->name; iter++) { | 431 | for (iter = bin_file_entries; iter->name; iter++) { |
| 432 | if (iter->is4GBp_only && (!IS_QLA24XX(ha) && !IS_QLA54XX(ha))) | 432 | if (iter->is4GBp_only && !IS_FWI2_CAPABLE(ha)) |
| 433 | continue; | 433 | continue; |
| 434 | 434 | ||
| 435 | sysfs_remove_bin_file(&host->shost_gendev.kobj, | 435 | sysfs_remove_bin_file(&host->shost_gendev.kobj, |
| @@ -898,7 +898,7 @@ qla2x00_get_fc_host_stats(struct Scsi_Host *shost) | |||
| 898 | pfc_host_stat = &ha->fc_host_stat; | 898 | pfc_host_stat = &ha->fc_host_stat; |
| 899 | memset(pfc_host_stat, -1, sizeof(struct fc_host_statistics)); | 899 | memset(pfc_host_stat, -1, sizeof(struct fc_host_statistics)); |
| 900 | 900 | ||
| 901 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 901 | if (IS_FWI2_CAPABLE(ha)) { |
| 902 | rval = qla24xx_get_isp_stats(ha, (uint32_t *)&stat_buf, | 902 | rval = qla24xx_get_isp_stats(ha, (uint32_t *)&stat_buf, |
| 903 | sizeof(stat_buf) / 4, mb_stat); | 903 | sizeof(stat_buf) / 4, mb_stat); |
| 904 | } else if (atomic_read(&ha->loop_state) == LOOP_READY && | 904 | } else if (atomic_read(&ha->loop_state) == LOOP_READY && |
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index a1ca590ba447..b818c43e2f9e 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
| @@ -2215,6 +2215,7 @@ typedef struct scsi_qla_host { | |||
| 2215 | #define DT_ISP5432 BIT_10 | 2215 | #define DT_ISP5432 BIT_10 |
| 2216 | #define DT_ISP_LAST (DT_ISP5432 << 1) | 2216 | #define DT_ISP_LAST (DT_ISP5432 << 1) |
| 2217 | 2217 | ||
| 2218 | #define DT_FWI2 BIT_27 | ||
| 2218 | #define DT_ZIO_SUPPORTED BIT_28 | 2219 | #define DT_ZIO_SUPPORTED BIT_28 |
| 2219 | #define DT_OEM_001 BIT_29 | 2220 | #define DT_OEM_001 BIT_29 |
| 2220 | #define DT_ISP2200A BIT_30 | 2221 | #define DT_ISP2200A BIT_30 |
| @@ -2238,6 +2239,7 @@ typedef struct scsi_qla_host { | |||
| 2238 | #define IS_QLA24XX(ha) (IS_QLA2422(ha) || IS_QLA2432(ha)) | 2239 | #define IS_QLA24XX(ha) (IS_QLA2422(ha) || IS_QLA2432(ha)) |
| 2239 | #define IS_QLA54XX(ha) (IS_QLA5422(ha) || IS_QLA5432(ha)) | 2240 | #define IS_QLA54XX(ha) (IS_QLA5422(ha) || IS_QLA5432(ha)) |
| 2240 | 2241 | ||
| 2242 | #define IS_FWI2_CAPABLE(ha) ((ha)->device_type & DT_FWI2) | ||
| 2241 | #define IS_ZIO_SUPPORTED(ha) ((ha)->device_type & DT_ZIO_SUPPORTED) | 2243 | #define IS_ZIO_SUPPORTED(ha) ((ha)->device_type & DT_ZIO_SUPPORTED) |
| 2242 | #define IS_OEM_001(ha) ((ha)->device_type & DT_OEM_001) | 2244 | #define IS_OEM_001(ha) ((ha)->device_type & DT_OEM_001) |
| 2243 | #define HAS_EXTENDED_IDS(ha) ((ha)->device_type & DT_EXTENDED_IDS) | 2245 | #define HAS_EXTENDED_IDS(ha) ((ha)->device_type & DT_EXTENDED_IDS) |
diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c index a086b3f0df65..16de9173719e 100644 --- a/drivers/scsi/qla2xxx/qla_gs.c +++ b/drivers/scsi/qla2xxx/qla_gs.c | |||
| @@ -127,7 +127,7 @@ qla2x00_chk_ms_status(scsi_qla_host_t *ha, ms_iocb_entry_t *ms_pkt, | |||
| 127 | DEBUG2_3(printk("scsi(%ld): %s failed, error status (%x).\n", | 127 | DEBUG2_3(printk("scsi(%ld): %s failed, error status (%x).\n", |
| 128 | ha->host_no, routine, ms_pkt->entry_status)); | 128 | ha->host_no, routine, ms_pkt->entry_status)); |
| 129 | } else { | 129 | } else { |
| 130 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 130 | if (IS_FWI2_CAPABLE(ha)) |
| 131 | comp_status = le16_to_cpu( | 131 | comp_status = le16_to_cpu( |
| 132 | ((struct ct_entry_24xx *)ms_pkt)->comp_status); | 132 | ((struct ct_entry_24xx *)ms_pkt)->comp_status); |
| 133 | else | 133 | else |
| @@ -1198,7 +1198,7 @@ qla2x00_update_ms_fdmi_iocb(scsi_qla_host_t *ha, uint32_t req_size) | |||
| 1198 | ms_iocb_entry_t *ms_pkt = ha->ms_iocb; | 1198 | ms_iocb_entry_t *ms_pkt = ha->ms_iocb; |
| 1199 | struct ct_entry_24xx *ct_pkt = (struct ct_entry_24xx *)ha->ms_iocb; | 1199 | struct ct_entry_24xx *ct_pkt = (struct ct_entry_24xx *)ha->ms_iocb; |
| 1200 | 1200 | ||
| 1201 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 1201 | if (IS_FWI2_CAPABLE(ha)) { |
| 1202 | ct_pkt->cmd_byte_count = cpu_to_le32(req_size); | 1202 | ct_pkt->cmd_byte_count = cpu_to_le32(req_size); |
| 1203 | ct_pkt->dseg_0_len = ct_pkt->cmd_byte_count; | 1203 | ct_pkt->dseg_0_len = ct_pkt->cmd_byte_count; |
| 1204 | } else { | 1204 | } else { |
| @@ -1562,7 +1562,7 @@ qla2x00_fdmi_rpa(scsi_qla_host_t *ha) | |||
| 1562 | eiter = (struct ct_fdmi_port_attr *) (entries + size); | 1562 | eiter = (struct ct_fdmi_port_attr *) (entries + size); |
| 1563 | eiter->type = __constant_cpu_to_be16(FDMI_PORT_MAX_FRAME_SIZE); | 1563 | eiter->type = __constant_cpu_to_be16(FDMI_PORT_MAX_FRAME_SIZE); |
| 1564 | eiter->len = __constant_cpu_to_be16(4 + 4); | 1564 | eiter->len = __constant_cpu_to_be16(4 + 4); |
| 1565 | max_frame_size = IS_QLA24XX(ha) || IS_QLA54XX(ha) ? | 1565 | max_frame_size = IS_FWI2_CAPABLE(ha) ? |
| 1566 | (uint32_t) icb24->frame_payload_size: | 1566 | (uint32_t) icb24->frame_payload_size: |
| 1567 | (uint32_t) ha->init_cb->frame_payload_size; | 1567 | (uint32_t) ha->init_cb->frame_payload_size; |
| 1568 | eiter->a.max_frame_size = cpu_to_be32(max_frame_size); | 1568 | eiter->a.max_frame_size = cpu_to_be32(max_frame_size); |
| @@ -1678,7 +1678,7 @@ qla2x00_gfpn_id(scsi_qla_host_t *ha, sw_info_t *list) | |||
| 1678 | struct ct_sns_req *ct_req; | 1678 | struct ct_sns_req *ct_req; |
| 1679 | struct ct_sns_rsp *ct_rsp; | 1679 | struct ct_sns_rsp *ct_rsp; |
| 1680 | 1680 | ||
| 1681 | if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha)) | 1681 | if (!IS_FWI2_CAPABLE(ha)) |
| 1682 | return QLA_FUNCTION_FAILED; | 1682 | return QLA_FUNCTION_FAILED; |
| 1683 | 1683 | ||
| 1684 | for (i = 0; i < MAX_FIBRE_DEVICES; i++) { | 1684 | for (i = 0; i < MAX_FIBRE_DEVICES; i++) { |
| @@ -1786,7 +1786,7 @@ qla2x00_gpsc(scsi_qla_host_t *ha, sw_info_t *list) | |||
| 1786 | struct ct_sns_req *ct_req; | 1786 | struct ct_sns_req *ct_req; |
| 1787 | struct ct_sns_rsp *ct_rsp; | 1787 | struct ct_sns_rsp *ct_rsp; |
| 1788 | 1788 | ||
| 1789 | if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha)) | 1789 | if (!IS_FWI2_CAPABLE(ha)) |
| 1790 | return QLA_FUNCTION_FAILED; | 1790 | return QLA_FUNCTION_FAILED; |
| 1791 | if (!ha->flags.gpsc_supported) | 1791 | if (!ha->flags.gpsc_supported) |
| 1792 | return QLA_FUNCTION_FAILED; | 1792 | return QLA_FUNCTION_FAILED; |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index cc6ebb609e98..7e53814daaa5 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
| @@ -736,7 +736,7 @@ qla2x00_alloc_fw_dump(scsi_qla_host_t *ha) | |||
| 736 | fixed_size = offsetof(struct qla2300_fw_dump, data_ram); | 736 | fixed_size = offsetof(struct qla2300_fw_dump, data_ram); |
| 737 | mem_size = (ha->fw_memory_size - 0x11000 + 1) * | 737 | mem_size = (ha->fw_memory_size - 0x11000 + 1) * |
| 738 | sizeof(uint16_t); | 738 | sizeof(uint16_t); |
| 739 | } else if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 739 | } else if (IS_FWI2_CAPABLE(ha)) { |
| 740 | fixed_size = offsetof(struct qla24xx_fw_dump, ext_mem); | 740 | fixed_size = offsetof(struct qla24xx_fw_dump, ext_mem); |
| 741 | mem_size = (ha->fw_memory_size - 0x100000 + 1) * | 741 | mem_size = (ha->fw_memory_size - 0x100000 + 1) * |
| 742 | sizeof(uint32_t); | 742 | sizeof(uint32_t); |
| @@ -2267,7 +2267,7 @@ qla2x00_configure_fabric(scsi_qla_host_t *ha) | |||
| 2267 | scsi_qla_host_t *pha = to_qla_parent(ha); | 2267 | scsi_qla_host_t *pha = to_qla_parent(ha); |
| 2268 | 2268 | ||
| 2269 | /* If FL port exists, then SNS is present */ | 2269 | /* If FL port exists, then SNS is present */ |
| 2270 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 2270 | if (IS_FWI2_CAPABLE(ha)) |
| 2271 | loop_id = NPH_F_PORT; | 2271 | loop_id = NPH_F_PORT; |
| 2272 | else | 2272 | else |
| 2273 | loop_id = SNS_FL_PORT; | 2273 | loop_id = SNS_FL_PORT; |
| @@ -2294,7 +2294,7 @@ qla2x00_configure_fabric(scsi_qla_host_t *ha) | |||
| 2294 | qla2x00_fdmi_register(ha); | 2294 | qla2x00_fdmi_register(ha); |
| 2295 | 2295 | ||
| 2296 | /* Ensure we are logged into the SNS. */ | 2296 | /* Ensure we are logged into the SNS. */ |
| 2297 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 2297 | if (IS_FWI2_CAPABLE(ha)) |
| 2298 | loop_id = NPH_SNS; | 2298 | loop_id = NPH_SNS; |
| 2299 | else | 2299 | else |
| 2300 | loop_id = SIMPLE_NAME_SERVER; | 2300 | loop_id = SIMPLE_NAME_SERVER; |
| @@ -4012,7 +4012,7 @@ qla2x00_try_to_stop_firmware(scsi_qla_host_t *ha) | |||
| 4012 | { | 4012 | { |
| 4013 | int ret, retries; | 4013 | int ret, retries; |
| 4014 | 4014 | ||
| 4015 | if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha)) | 4015 | if (!IS_FWI2_CAPABLE(ha)) |
| 4016 | return; | 4016 | return; |
| 4017 | if (!ha->fw_major_version) | 4017 | if (!ha->fw_major_version) |
| 4018 | return; | 4018 | return; |
diff --git a/drivers/scsi/qla2xxx/qla_inline.h b/drivers/scsi/qla2xxx/qla_inline.h index d3023338628f..91706db1391b 100644 --- a/drivers/scsi/qla2xxx/qla_inline.h +++ b/drivers/scsi/qla2xxx/qla_inline.h | |||
| @@ -163,7 +163,7 @@ static inline int qla2x00_is_reserved_id(scsi_qla_host_t *, uint16_t); | |||
| 163 | static inline int | 163 | static inline int |
| 164 | qla2x00_is_reserved_id(scsi_qla_host_t *ha, uint16_t loop_id) | 164 | qla2x00_is_reserved_id(scsi_qla_host_t *ha, uint16_t loop_id) |
| 165 | { | 165 | { |
| 166 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 166 | if (IS_FWI2_CAPABLE(ha)) |
| 167 | return (loop_id > NPH_LAST_HANDLE); | 167 | return (loop_id > NPH_LAST_HANDLE); |
| 168 | 168 | ||
| 169 | return ((loop_id > ha->last_loop_id && loop_id < SNS_FIRST_LOOP_ID) || | 169 | return ((loop_id > ha->last_loop_id && loop_id < SNS_FIRST_LOOP_ID) || |
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c index c71863ff5489..49208c6994f1 100644 --- a/drivers/scsi/qla2xxx/qla_iocb.c +++ b/drivers/scsi/qla2xxx/qla_iocb.c | |||
| @@ -432,7 +432,7 @@ __qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun, | |||
| 432 | mrk->entry_type = MARKER_TYPE; | 432 | mrk->entry_type = MARKER_TYPE; |
| 433 | mrk->modifier = type; | 433 | mrk->modifier = type; |
| 434 | if (type != MK_SYNC_ALL) { | 434 | if (type != MK_SYNC_ALL) { |
| 435 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 435 | if (IS_FWI2_CAPABLE(ha)) { |
| 436 | mrk24 = (struct mrk_entry_24xx *) mrk; | 436 | mrk24 = (struct mrk_entry_24xx *) mrk; |
| 437 | mrk24->nport_handle = cpu_to_le16(loop_id); | 437 | mrk24->nport_handle = cpu_to_le16(loop_id); |
| 438 | mrk24->lun[1] = LSB(lun); | 438 | mrk24->lun[1] = LSB(lun); |
| @@ -487,7 +487,7 @@ qla2x00_req_pkt(scsi_qla_host_t *ha) | |||
| 487 | for (timer = HZ; timer; timer--) { | 487 | for (timer = HZ; timer; timer--) { |
| 488 | if ((req_cnt + 2) >= ha->req_q_cnt) { | 488 | if ((req_cnt + 2) >= ha->req_q_cnt) { |
| 489 | /* Calculate number of free request entries. */ | 489 | /* Calculate number of free request entries. */ |
| 490 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 490 | if (IS_FWI2_CAPABLE(ha)) |
| 491 | cnt = (uint16_t)RD_REG_DWORD( | 491 | cnt = (uint16_t)RD_REG_DWORD( |
| 492 | ®->isp24.req_q_out); | 492 | ®->isp24.req_q_out); |
| 493 | else | 493 | else |
| @@ -561,7 +561,7 @@ qla2x00_isp_cmd(scsi_qla_host_t *ha) | |||
| 561 | ha->request_ring_ptr++; | 561 | ha->request_ring_ptr++; |
| 562 | 562 | ||
| 563 | /* Set chip new ring index. */ | 563 | /* Set chip new ring index. */ |
| 564 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 564 | if (IS_FWI2_CAPABLE(ha)) { |
| 565 | WRT_REG_DWORD(®->isp24.req_q_in, ha->req_ring_index); | 565 | WRT_REG_DWORD(®->isp24.req_q_in, ha->req_ring_index); |
| 566 | RD_REG_DWORD_RELAXED(®->isp24.req_q_in); | 566 | RD_REG_DWORD_RELAXED(®->isp24.req_q_in); |
| 567 | } else { | 567 | } else { |
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 0ba4c8d37879..fa21cd86e9e2 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
| @@ -336,7 +336,7 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb) | |||
| 336 | 336 | ||
| 337 | ha->isp_ops.fw_dump(ha, 1); | 337 | ha->isp_ops.fw_dump(ha, 1); |
| 338 | 338 | ||
| 339 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 339 | if (IS_FWI2_CAPABLE(ha)) { |
| 340 | if (mb[1] == 0 && mb[2] == 0) { | 340 | if (mb[1] == 0 && mb[2] == 0) { |
| 341 | qla_printk(KERN_ERR, ha, | 341 | qla_printk(KERN_ERR, ha, |
| 342 | "Unrecoverable Hardware Error: adapter " | 342 | "Unrecoverable Hardware Error: adapter " |
| @@ -601,7 +601,7 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb) | |||
| 601 | "scsi(%ld): [R|Z]IO update completion.\n", | 601 | "scsi(%ld): [R|Z]IO update completion.\n", |
| 602 | ha->host_no)); | 602 | ha->host_no)); |
| 603 | 603 | ||
| 604 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 604 | if (IS_FWI2_CAPABLE(ha)) |
| 605 | qla24xx_process_response_queue(ha); | 605 | qla24xx_process_response_queue(ha); |
| 606 | else | 606 | else |
| 607 | qla2x00_process_response_queue(ha); | 607 | qla2x00_process_response_queue(ha); |
| @@ -823,7 +823,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
| 823 | 823 | ||
| 824 | sts = (sts_entry_t *) pkt; | 824 | sts = (sts_entry_t *) pkt; |
| 825 | sts24 = (struct sts_entry_24xx *) pkt; | 825 | sts24 = (struct sts_entry_24xx *) pkt; |
| 826 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 826 | if (IS_FWI2_CAPABLE(ha)) { |
| 827 | comp_status = le16_to_cpu(sts24->comp_status); | 827 | comp_status = le16_to_cpu(sts24->comp_status); |
| 828 | scsi_status = le16_to_cpu(sts24->scsi_status) & SS_MASK; | 828 | scsi_status = le16_to_cpu(sts24->scsi_status) & SS_MASK; |
| 829 | } else { | 829 | } else { |
| @@ -872,7 +872,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
| 872 | fcport = sp->fcport; | 872 | fcport = sp->fcport; |
| 873 | 873 | ||
| 874 | sense_len = rsp_info_len = resid_len = fw_resid_len = 0; | 874 | sense_len = rsp_info_len = resid_len = fw_resid_len = 0; |
| 875 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 875 | if (IS_FWI2_CAPABLE(ha)) { |
| 876 | sense_len = le32_to_cpu(sts24->sense_len); | 876 | sense_len = le32_to_cpu(sts24->sense_len); |
| 877 | rsp_info_len = le32_to_cpu(sts24->rsp_data_len); | 877 | rsp_info_len = le32_to_cpu(sts24->rsp_data_len); |
| 878 | resid_len = le32_to_cpu(sts24->rsp_residual_count); | 878 | resid_len = le32_to_cpu(sts24->rsp_residual_count); |
| @@ -891,7 +891,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
| 891 | /* Check for any FCP transport errors. */ | 891 | /* Check for any FCP transport errors. */ |
| 892 | if (scsi_status & SS_RESPONSE_INFO_LEN_VALID) { | 892 | if (scsi_status & SS_RESPONSE_INFO_LEN_VALID) { |
| 893 | /* Sense data lies beyond any FCP RESPONSE data. */ | 893 | /* Sense data lies beyond any FCP RESPONSE data. */ |
| 894 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 894 | if (IS_FWI2_CAPABLE(ha)) |
| 895 | sense_data += rsp_info_len; | 895 | sense_data += rsp_info_len; |
| 896 | if (rsp_info_len > 3 && rsp_info[3]) { | 896 | if (rsp_info_len > 3 && rsp_info[3]) { |
| 897 | DEBUG2(printk("scsi(%ld:%d:%d:%d) FCP I/O protocol " | 897 | DEBUG2(printk("scsi(%ld:%d:%d:%d) FCP I/O protocol " |
| @@ -990,7 +990,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
| 990 | case CS_DATA_UNDERRUN: | 990 | case CS_DATA_UNDERRUN: |
| 991 | resid = resid_len; | 991 | resid = resid_len; |
| 992 | /* Use F/W calculated residual length. */ | 992 | /* Use F/W calculated residual length. */ |
| 993 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 993 | if (IS_FWI2_CAPABLE(ha)) |
| 994 | resid = fw_resid_len; | 994 | resid = fw_resid_len; |
| 995 | 995 | ||
| 996 | if (scsi_status & SS_RESIDUAL_UNDER) { | 996 | if (scsi_status & SS_RESIDUAL_UNDER) { |
| @@ -1166,7 +1166,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
| 1166 | case CS_TIMEOUT: | 1166 | case CS_TIMEOUT: |
| 1167 | cp->result = DID_BUS_BUSY << 16; | 1167 | cp->result = DID_BUS_BUSY << 16; |
| 1168 | 1168 | ||
| 1169 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 1169 | if (IS_FWI2_CAPABLE(ha)) { |
| 1170 | DEBUG2(printk(KERN_INFO | 1170 | DEBUG2(printk(KERN_INFO |
| 1171 | "scsi(%ld:%d:%d:%d): TIMEOUT status detected " | 1171 | "scsi(%ld:%d:%d:%d): TIMEOUT status detected " |
| 1172 | "0x%x-0x%x\n", ha->host_no, cp->device->channel, | 1172 | "0x%x-0x%x\n", ha->host_no, cp->device->channel, |
| @@ -1235,7 +1235,7 @@ qla2x00_status_cont_entry(scsi_qla_host_t *ha, sts_cont_entry_t *pkt) | |||
| 1235 | } | 1235 | } |
| 1236 | 1236 | ||
| 1237 | /* Move sense data. */ | 1237 | /* Move sense data. */ |
| 1238 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 1238 | if (IS_FWI2_CAPABLE(ha)) |
| 1239 | host_to_fcp_swap(pkt->data, sizeof(pkt->data)); | 1239 | host_to_fcp_swap(pkt->data, sizeof(pkt->data)); |
| 1240 | memcpy(sp->request_sense_ptr, pkt->data, sense_sz); | 1240 | memcpy(sp->request_sense_ptr, pkt->data, sense_sz); |
| 1241 | DEBUG5(qla2x00_dump_buffer(sp->request_sense_ptr, sense_sz)); | 1241 | DEBUG5(qla2x00_dump_buffer(sp->request_sense_ptr, sense_sz)); |
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 2cd0cff25928..321acc2c98c6 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
| @@ -90,7 +90,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp) | |||
| 90 | spin_lock_irqsave(&ha->hardware_lock, flags); | 90 | spin_lock_irqsave(&ha->hardware_lock, flags); |
| 91 | 91 | ||
| 92 | /* Load mailbox registers. */ | 92 | /* Load mailbox registers. */ |
| 93 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 93 | if (IS_FWI2_CAPABLE(ha)) |
| 94 | optr = (uint16_t __iomem *)®->isp24.mailbox0; | 94 | optr = (uint16_t __iomem *)®->isp24.mailbox0; |
| 95 | else | 95 | else |
| 96 | optr = (uint16_t __iomem *)MAILBOX_REG(ha, ®->isp, 0); | 96 | optr = (uint16_t __iomem *)MAILBOX_REG(ha, ®->isp, 0); |
| @@ -154,7 +154,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp) | |||
| 154 | 154 | ||
| 155 | set_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags); | 155 | set_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags); |
| 156 | 156 | ||
| 157 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 157 | if (IS_FWI2_CAPABLE(ha)) |
| 158 | WRT_REG_DWORD(®->isp24.hccr, HCCRX_SET_HOST_INT); | 158 | WRT_REG_DWORD(®->isp24.hccr, HCCRX_SET_HOST_INT); |
| 159 | else | 159 | else |
| 160 | WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT); | 160 | WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT); |
| @@ -175,7 +175,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp) | |||
| 175 | DEBUG3_11(printk("%s(%ld): cmd=%x POLLING MODE.\n", __func__, | 175 | DEBUG3_11(printk("%s(%ld): cmd=%x POLLING MODE.\n", __func__, |
| 176 | ha->host_no, command)); | 176 | ha->host_no, command)); |
| 177 | 177 | ||
| 178 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 178 | if (IS_FWI2_CAPABLE(ha)) |
| 179 | WRT_REG_DWORD(®->isp24.hccr, HCCRX_SET_HOST_INT); | 179 | WRT_REG_DWORD(®->isp24.hccr, HCCRX_SET_HOST_INT); |
| 180 | else | 180 | else |
| 181 | WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT); | 181 | WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT); |
| @@ -228,7 +228,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp) | |||
| 228 | uint16_t mb0; | 228 | uint16_t mb0; |
| 229 | uint32_t ictrl; | 229 | uint32_t ictrl; |
| 230 | 230 | ||
| 231 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 231 | if (IS_FWI2_CAPABLE(ha)) { |
| 232 | mb0 = RD_REG_WORD(®->isp24.mailbox0); | 232 | mb0 = RD_REG_WORD(®->isp24.mailbox0); |
| 233 | ictrl = RD_REG_DWORD(®->isp24.ictrl); | 233 | ictrl = RD_REG_DWORD(®->isp24.ictrl); |
| 234 | } else { | 234 | } else { |
| @@ -322,7 +322,7 @@ qla2x00_load_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t risc_addr, | |||
| 322 | 322 | ||
| 323 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); | 323 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); |
| 324 | 324 | ||
| 325 | if (MSW(risc_addr) || IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 325 | if (MSW(risc_addr) || IS_FWI2_CAPABLE(ha)) { |
| 326 | mcp->mb[0] = MBC_LOAD_RISC_RAM_EXTENDED; | 326 | mcp->mb[0] = MBC_LOAD_RISC_RAM_EXTENDED; |
| 327 | mcp->mb[8] = MSW(risc_addr); | 327 | mcp->mb[8] = MSW(risc_addr); |
| 328 | mcp->out_mb = MBX_8|MBX_0; | 328 | mcp->out_mb = MBX_8|MBX_0; |
| @@ -336,7 +336,7 @@ qla2x00_load_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t risc_addr, | |||
| 336 | mcp->mb[6] = MSW(MSD(req_dma)); | 336 | mcp->mb[6] = MSW(MSD(req_dma)); |
| 337 | mcp->mb[7] = LSW(MSD(req_dma)); | 337 | mcp->mb[7] = LSW(MSD(req_dma)); |
| 338 | mcp->out_mb |= MBX_7|MBX_6|MBX_3|MBX_2|MBX_1; | 338 | mcp->out_mb |= MBX_7|MBX_6|MBX_3|MBX_2|MBX_1; |
| 339 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 339 | if (IS_FWI2_CAPABLE(ha)) { |
| 340 | mcp->mb[4] = MSW(risc_code_size); | 340 | mcp->mb[4] = MSW(risc_code_size); |
| 341 | mcp->mb[5] = LSW(risc_code_size); | 341 | mcp->mb[5] = LSW(risc_code_size); |
| 342 | mcp->out_mb |= MBX_5|MBX_4; | 342 | mcp->out_mb |= MBX_5|MBX_4; |
| @@ -387,7 +387,7 @@ qla2x00_execute_fw(scsi_qla_host_t *ha, uint32_t risc_addr) | |||
| 387 | mcp->mb[0] = MBC_EXECUTE_FIRMWARE; | 387 | mcp->mb[0] = MBC_EXECUTE_FIRMWARE; |
| 388 | mcp->out_mb = MBX_0; | 388 | mcp->out_mb = MBX_0; |
| 389 | mcp->in_mb = MBX_0; | 389 | mcp->in_mb = MBX_0; |
| 390 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 390 | if (IS_FWI2_CAPABLE(ha)) { |
| 391 | mcp->mb[1] = MSW(risc_addr); | 391 | mcp->mb[1] = MSW(risc_addr); |
| 392 | mcp->mb[2] = LSW(risc_addr); | 392 | mcp->mb[2] = LSW(risc_addr); |
| 393 | mcp->mb[3] = 0; | 393 | mcp->mb[3] = 0; |
| @@ -410,7 +410,7 @@ qla2x00_execute_fw(scsi_qla_host_t *ha, uint32_t risc_addr) | |||
| 410 | DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n", __func__, | 410 | DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n", __func__, |
| 411 | ha->host_no, rval, mcp->mb[0])); | 411 | ha->host_no, rval, mcp->mb[0])); |
| 412 | } else { | 412 | } else { |
| 413 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 413 | if (IS_FWI2_CAPABLE(ha)) { |
| 414 | DEBUG11(printk("%s(%ld): done exchanges=%x.\n", | 414 | DEBUG11(printk("%s(%ld): done exchanges=%x.\n", |
| 415 | __func__, ha->host_no, mcp->mb[1])); | 415 | __func__, ha->host_no, mcp->mb[1])); |
| 416 | } else { | 416 | } else { |
| @@ -551,7 +551,7 @@ qla2x00_set_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts) | |||
| 551 | mcp->mb[3] = fwopts[3]; | 551 | mcp->mb[3] = fwopts[3]; |
| 552 | mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; | 552 | mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; |
| 553 | mcp->in_mb = MBX_0; | 553 | mcp->in_mb = MBX_0; |
| 554 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 554 | if (IS_FWI2_CAPABLE(ha)) { |
| 555 | mcp->in_mb |= MBX_1; | 555 | mcp->in_mb |= MBX_1; |
| 556 | } else { | 556 | } else { |
| 557 | mcp->mb[10] = fwopts[10]; | 557 | mcp->mb[10] = fwopts[10]; |
| @@ -664,7 +664,7 @@ qla2x00_verify_checksum(scsi_qla_host_t *ha, uint32_t risc_addr) | |||
| 664 | mcp->mb[0] = MBC_VERIFY_CHECKSUM; | 664 | mcp->mb[0] = MBC_VERIFY_CHECKSUM; |
| 665 | mcp->out_mb = MBX_0; | 665 | mcp->out_mb = MBX_0; |
| 666 | mcp->in_mb = MBX_0; | 666 | mcp->in_mb = MBX_0; |
| 667 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 667 | if (IS_FWI2_CAPABLE(ha)) { |
| 668 | mcp->mb[1] = MSW(risc_addr); | 668 | mcp->mb[1] = MSW(risc_addr); |
| 669 | mcp->mb[2] = LSW(risc_addr); | 669 | mcp->mb[2] = LSW(risc_addr); |
| 670 | mcp->out_mb |= MBX_2|MBX_1; | 670 | mcp->out_mb |= MBX_2|MBX_1; |
| @@ -681,8 +681,8 @@ qla2x00_verify_checksum(scsi_qla_host_t *ha, uint32_t risc_addr) | |||
| 681 | 681 | ||
| 682 | if (rval != QLA_SUCCESS) { | 682 | if (rval != QLA_SUCCESS) { |
| 683 | DEBUG2_3_11(printk("%s(%ld): failed=%x chk sum=%x.\n", __func__, | 683 | DEBUG2_3_11(printk("%s(%ld): failed=%x chk sum=%x.\n", __func__, |
| 684 | ha->host_no, rval, (IS_QLA24XX(ha) || IS_QLA54XX(ha) ? | 684 | ha->host_no, rval, IS_FWI2_CAPABLE(ha) ? |
| 685 | (mcp->mb[2] << 16) | mcp->mb[1]: mcp->mb[1]))); | 685 | (mcp->mb[2] << 16) | mcp->mb[1]: mcp->mb[1])); |
| 686 | } else { | 686 | } else { |
| 687 | DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); | 687 | DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); |
| 688 | } | 688 | } |
| @@ -739,7 +739,7 @@ qla2x00_issue_iocb(scsi_qla_host_t *ha, void* buffer, dma_addr_t phys_addr, | |||
| 739 | 739 | ||
| 740 | /* Mask reserved bits. */ | 740 | /* Mask reserved bits. */ |
| 741 | sts_entry->entry_status &= | 741 | sts_entry->entry_status &= |
| 742 | IS_QLA24XX(ha) || IS_QLA54XX(ha) ? RF_MASK_24XX :RF_MASK; | 742 | IS_FWI2_CAPABLE(ha) ? RF_MASK_24XX :RF_MASK; |
| 743 | } | 743 | } |
| 744 | 744 | ||
| 745 | return rval; | 745 | return rval; |
| @@ -1085,7 +1085,7 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt) | |||
| 1085 | memset(pd, 0, max(PORT_DATABASE_SIZE, PORT_DATABASE_24XX_SIZE)); | 1085 | memset(pd, 0, max(PORT_DATABASE_SIZE, PORT_DATABASE_24XX_SIZE)); |
| 1086 | 1086 | ||
| 1087 | mcp->mb[0] = MBC_GET_PORT_DATABASE; | 1087 | mcp->mb[0] = MBC_GET_PORT_DATABASE; |
| 1088 | if (opt != 0 && !IS_QLA24XX(ha) && !IS_QLA54XX(ha)) | 1088 | if (opt != 0 && !IS_FWI2_CAPABLE(ha)) |
| 1089 | mcp->mb[0] = MBC_ENHANCED_GET_PORT_DATABASE; | 1089 | mcp->mb[0] = MBC_ENHANCED_GET_PORT_DATABASE; |
| 1090 | mcp->mb[2] = MSW(pd_dma); | 1090 | mcp->mb[2] = MSW(pd_dma); |
| 1091 | mcp->mb[3] = LSW(pd_dma); | 1091 | mcp->mb[3] = LSW(pd_dma); |
| @@ -1094,7 +1094,7 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt) | |||
| 1094 | mcp->mb[9] = ha->vp_idx; | 1094 | mcp->mb[9] = ha->vp_idx; |
| 1095 | mcp->out_mb = MBX_9|MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; | 1095 | mcp->out_mb = MBX_9|MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; |
| 1096 | mcp->in_mb = MBX_0; | 1096 | mcp->in_mb = MBX_0; |
| 1097 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 1097 | if (IS_FWI2_CAPABLE(ha)) { |
| 1098 | mcp->mb[1] = fcport->loop_id; | 1098 | mcp->mb[1] = fcport->loop_id; |
| 1099 | mcp->mb[10] = opt; | 1099 | mcp->mb[10] = opt; |
| 1100 | mcp->out_mb |= MBX_10|MBX_1; | 1100 | mcp->out_mb |= MBX_10|MBX_1; |
| @@ -1107,15 +1107,15 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt) | |||
| 1107 | mcp->mb[1] = fcport->loop_id << 8 | opt; | 1107 | mcp->mb[1] = fcport->loop_id << 8 | opt; |
| 1108 | mcp->out_mb |= MBX_1; | 1108 | mcp->out_mb |= MBX_1; |
| 1109 | } | 1109 | } |
| 1110 | mcp->buf_size = (IS_QLA24XX(ha) || IS_QLA54XX(ha) ? | 1110 | mcp->buf_size = IS_FWI2_CAPABLE(ha) ? |
| 1111 | PORT_DATABASE_24XX_SIZE : PORT_DATABASE_SIZE); | 1111 | PORT_DATABASE_24XX_SIZE : PORT_DATABASE_SIZE; |
| 1112 | mcp->flags = MBX_DMA_IN; | 1112 | mcp->flags = MBX_DMA_IN; |
| 1113 | mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); | 1113 | mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); |
| 1114 | rval = qla2x00_mailbox_command(ha, mcp); | 1114 | rval = qla2x00_mailbox_command(ha, mcp); |
| 1115 | if (rval != QLA_SUCCESS) | 1115 | if (rval != QLA_SUCCESS) |
| 1116 | goto gpd_error_out; | 1116 | goto gpd_error_out; |
| 1117 | 1117 | ||
| 1118 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 1118 | if (IS_FWI2_CAPABLE(ha)) { |
| 1119 | pd24 = (struct port_database_24xx *) pd; | 1119 | pd24 = (struct port_database_24xx *) pd; |
| 1120 | 1120 | ||
| 1121 | /* Check for logged in state. */ | 1121 | /* Check for logged in state. */ |
| @@ -1333,7 +1333,7 @@ qla2x00_lip_reset(scsi_qla_host_t *ha) | |||
| 1333 | 1333 | ||
| 1334 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); | 1334 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); |
| 1335 | 1335 | ||
| 1336 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 1336 | if (IS_FWI2_CAPABLE(ha)) { |
| 1337 | mcp->mb[0] = MBC_LIP_FULL_LOGIN; | 1337 | mcp->mb[0] = MBC_LIP_FULL_LOGIN; |
| 1338 | mcp->mb[1] = BIT_6; | 1338 | mcp->mb[1] = BIT_6; |
| 1339 | mcp->mb[2] = 0; | 1339 | mcp->mb[2] = 0; |
| @@ -1637,7 +1637,7 @@ qla2x00_login_local_device(scsi_qla_host_t *ha, fc_port_t *fcport, | |||
| 1637 | mbx_cmd_t mc; | 1637 | mbx_cmd_t mc; |
| 1638 | mbx_cmd_t *mcp = &mc; | 1638 | mbx_cmd_t *mcp = &mc; |
| 1639 | 1639 | ||
| 1640 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) | 1640 | if (IS_FWI2_CAPABLE(ha)) |
| 1641 | return qla24xx_login_fabric(ha, fcport->loop_id, | 1641 | return qla24xx_login_fabric(ha, fcport->loop_id, |
| 1642 | fcport->d_id.b.domain, fcport->d_id.b.area, | 1642 | fcport->d_id.b.domain, fcport->d_id.b.area, |
| 1643 | fcport->d_id.b.al_pa, mb_ret, opt); | 1643 | fcport->d_id.b.al_pa, mb_ret, opt); |
| @@ -1821,7 +1821,7 @@ qla2x00_full_login_lip(scsi_qla_host_t *ha) | |||
| 1821 | ha->host_no)); | 1821 | ha->host_no)); |
| 1822 | 1822 | ||
| 1823 | mcp->mb[0] = MBC_LIP_FULL_LOGIN; | 1823 | mcp->mb[0] = MBC_LIP_FULL_LOGIN; |
| 1824 | mcp->mb[1] = IS_QLA24XX(ha) || IS_QLA54XX(ha) ? BIT_3: 0; | 1824 | mcp->mb[1] = IS_FWI2_CAPABLE(ha) ? BIT_3: 0; |
| 1825 | mcp->mb[2] = 0; | 1825 | mcp->mb[2] = 0; |
| 1826 | mcp->mb[3] = 0; | 1826 | mcp->mb[3] = 0; |
| 1827 | mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; | 1827 | mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; |
| @@ -1871,7 +1871,7 @@ qla2x00_get_id_list(scsi_qla_host_t *ha, void *id_list, dma_addr_t id_list_dma, | |||
| 1871 | 1871 | ||
| 1872 | mcp->mb[0] = MBC_GET_ID_LIST; | 1872 | mcp->mb[0] = MBC_GET_ID_LIST; |
| 1873 | mcp->out_mb = MBX_0; | 1873 | mcp->out_mb = MBX_0; |
| 1874 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 1874 | if (IS_FWI2_CAPABLE(ha)) { |
| 1875 | mcp->mb[2] = MSW(id_list_dma); | 1875 | mcp->mb[2] = MSW(id_list_dma); |
| 1876 | mcp->mb[3] = LSW(id_list_dma); | 1876 | mcp->mb[3] = LSW(id_list_dma); |
| 1877 | mcp->mb[6] = MSW(MSD(id_list_dma)); | 1877 | mcp->mb[6] = MSW(MSD(id_list_dma)); |
| @@ -2063,7 +2063,7 @@ qla2x00_get_link_status(scsi_qla_host_t *ha, uint16_t loop_id, | |||
| 2063 | mcp->mb[7] = LSW(MSD(stat_buf_dma)); | 2063 | mcp->mb[7] = LSW(MSD(stat_buf_dma)); |
| 2064 | mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; | 2064 | mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; |
| 2065 | mcp->in_mb = MBX_0; | 2065 | mcp->in_mb = MBX_0; |
| 2066 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 2066 | if (IS_FWI2_CAPABLE(ha)) { |
| 2067 | mcp->mb[1] = loop_id; | 2067 | mcp->mb[1] = loop_id; |
| 2068 | mcp->mb[4] = 0; | 2068 | mcp->mb[4] = 0; |
| 2069 | mcp->mb[10] = 0; | 2069 | mcp->mb[10] = 0; |
| @@ -2334,7 +2334,7 @@ qla2x00_system_error(scsi_qla_host_t *ha) | |||
| 2334 | mbx_cmd_t mc; | 2334 | mbx_cmd_t mc; |
| 2335 | mbx_cmd_t *mcp = &mc; | 2335 | mbx_cmd_t *mcp = &mc; |
| 2336 | 2336 | ||
| 2337 | if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha)) | 2337 | if (!IS_FWI2_CAPABLE(ha)) |
| 2338 | return QLA_FUNCTION_FAILED; | 2338 | return QLA_FUNCTION_FAILED; |
| 2339 | 2339 | ||
| 2340 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); | 2340 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); |
| @@ -2444,7 +2444,7 @@ qla2x00_stop_firmware(scsi_qla_host_t *ha) | |||
| 2444 | mbx_cmd_t mc; | 2444 | mbx_cmd_t mc; |
| 2445 | mbx_cmd_t *mcp = &mc; | 2445 | mbx_cmd_t *mcp = &mc; |
| 2446 | 2446 | ||
| 2447 | if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha)) | 2447 | if (!IS_FWI2_CAPABLE(ha)) |
| 2448 | return QLA_FUNCTION_FAILED; | 2448 | return QLA_FUNCTION_FAILED; |
| 2449 | 2449 | ||
| 2450 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); | 2450 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); |
| @@ -2474,7 +2474,7 @@ qla2x00_trace_control(scsi_qla_host_t *ha, uint16_t ctrl, dma_addr_t eft_dma, | |||
| 2474 | mbx_cmd_t mc; | 2474 | mbx_cmd_t mc; |
| 2475 | mbx_cmd_t *mcp = &mc; | 2475 | mbx_cmd_t *mcp = &mc; |
| 2476 | 2476 | ||
| 2477 | if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha)) | 2477 | if (!IS_FWI2_CAPABLE(ha)) |
| 2478 | return QLA_FUNCTION_FAILED; | 2478 | return QLA_FUNCTION_FAILED; |
| 2479 | 2479 | ||
| 2480 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); | 2480 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); |
| @@ -2514,7 +2514,7 @@ qla2x00_read_sfp(scsi_qla_host_t *ha, dma_addr_t sfp_dma, uint16_t addr, | |||
| 2514 | mbx_cmd_t mc; | 2514 | mbx_cmd_t mc; |
| 2515 | mbx_cmd_t *mcp = &mc; | 2515 | mbx_cmd_t *mcp = &mc; |
| 2516 | 2516 | ||
| 2517 | if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha)) | 2517 | if (!IS_FWI2_CAPABLE(ha)) |
| 2518 | return QLA_FUNCTION_FAILED; | 2518 | return QLA_FUNCTION_FAILED; |
| 2519 | 2519 | ||
| 2520 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); | 2520 | DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); |
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index b5a77b0c0deb..e246f944957d 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
| @@ -1238,19 +1238,23 @@ qla2x00_set_isp_flags(scsi_qla_host_t *ha) | |||
| 1238 | case PCI_DEVICE_ID_QLOGIC_ISP2422: | 1238 | case PCI_DEVICE_ID_QLOGIC_ISP2422: |
| 1239 | ha->device_type |= DT_ISP2422; | 1239 | ha->device_type |= DT_ISP2422; |
| 1240 | ha->device_type |= DT_ZIO_SUPPORTED; | 1240 | ha->device_type |= DT_ZIO_SUPPORTED; |
| 1241 | ha->device_type |= DT_FWI2; | ||
| 1241 | ha->fw_srisc_address = RISC_START_ADDRESS_2400; | 1242 | ha->fw_srisc_address = RISC_START_ADDRESS_2400; |
| 1242 | break; | 1243 | break; |
| 1243 | case PCI_DEVICE_ID_QLOGIC_ISP2432: | 1244 | case PCI_DEVICE_ID_QLOGIC_ISP2432: |
| 1244 | ha->device_type |= DT_ISP2432; | 1245 | ha->device_type |= DT_ISP2432; |
| 1245 | ha->device_type |= DT_ZIO_SUPPORTED; | 1246 | ha->device_type |= DT_ZIO_SUPPORTED; |
| 1247 | ha->device_type |= DT_FWI2; | ||
| 1246 | ha->fw_srisc_address = RISC_START_ADDRESS_2400; | 1248 | ha->fw_srisc_address = RISC_START_ADDRESS_2400; |
| 1247 | break; | 1249 | break; |
| 1248 | case PCI_DEVICE_ID_QLOGIC_ISP5422: | 1250 | case PCI_DEVICE_ID_QLOGIC_ISP5422: |
| 1249 | ha->device_type |= DT_ISP5422; | 1251 | ha->device_type |= DT_ISP5422; |
| 1252 | ha->device_type |= DT_FWI2; | ||
| 1250 | ha->fw_srisc_address = RISC_START_ADDRESS_2400; | 1253 | ha->fw_srisc_address = RISC_START_ADDRESS_2400; |
| 1251 | break; | 1254 | break; |
| 1252 | case PCI_DEVICE_ID_QLOGIC_ISP5432: | 1255 | case PCI_DEVICE_ID_QLOGIC_ISP5432: |
| 1253 | ha->device_type |= DT_ISP5432; | 1256 | ha->device_type |= DT_ISP5432; |
| 1257 | ha->device_type |= DT_FWI2; | ||
| 1254 | ha->fw_srisc_address = RISC_START_ADDRESS_2400; | 1258 | ha->fw_srisc_address = RISC_START_ADDRESS_2400; |
| 1255 | break; | 1259 | break; |
| 1256 | } | 1260 | } |
| @@ -1632,7 +1636,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) | |||
| 1632 | 1636 | ||
| 1633 | spin_lock_irqsave(&ha->hardware_lock, flags); | 1637 | spin_lock_irqsave(&ha->hardware_lock, flags); |
| 1634 | reg = ha->iobase; | 1638 | reg = ha->iobase; |
| 1635 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 1639 | if (IS_FWI2_CAPABLE(ha)) { |
| 1636 | WRT_REG_DWORD(®->isp24.hccr, HCCRX_CLR_HOST_INT); | 1640 | WRT_REG_DWORD(®->isp24.hccr, HCCRX_CLR_HOST_INT); |
| 1637 | WRT_REG_DWORD(®->isp24.hccr, HCCRX_CLR_RISC_INT); | 1641 | WRT_REG_DWORD(®->isp24.hccr, HCCRX_CLR_RISC_INT); |
| 1638 | } else { | 1642 | } else { |
| @@ -2025,7 +2029,7 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha) | |||
| 2025 | } | 2029 | } |
| 2026 | memset(ha->ct_sns, 0, sizeof(struct ct_sns_pkt)); | 2030 | memset(ha->ct_sns, 0, sizeof(struct ct_sns_pkt)); |
| 2027 | 2031 | ||
| 2028 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { | 2032 | if (IS_FWI2_CAPABLE(ha)) { |
| 2029 | /* | 2033 | /* |
| 2030 | * Get consistent memory allocated for SFP | 2034 | * Get consistent memory allocated for SFP |
| 2031 | * block. | 2035 | * block. |
