diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2007-07-19 18:05:56 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.localdomain> | 2007-07-20 09:59:09 -0400 |
commit | e428924ccdf4644c58e23c2314ab970ff3afc607 (patch) | |
tree | d46654e03de740a6fdb2be998edf592ad7002d63 /drivers/scsi | |
parent | 80ed71ce1a3369521c693ebf30abb9cfe1dc7e66 (diff) |
[SCSI] qla2xxx: Generalize FW-Interface-2 support.
In preparation for new ISP types.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi')
-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. |