diff options
Diffstat (limited to 'drivers/scsi/qla4xxx/ql4_mbx.c')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_mbx.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c index 90021704d8ca..2d2f9c879bfd 100644 --- a/drivers/scsi/qla4xxx/ql4_mbx.c +++ b/drivers/scsi/qla4xxx/ql4_mbx.c | |||
@@ -299,6 +299,10 @@ qla4xxx_set_ifcb(struct scsi_qla_host *ha, uint32_t *mbox_cmd, | |||
299 | { | 299 | { |
300 | memset(mbox_cmd, 0, sizeof(mbox_cmd[0]) * MBOX_REG_COUNT); | 300 | memset(mbox_cmd, 0, sizeof(mbox_cmd[0]) * MBOX_REG_COUNT); |
301 | memset(mbox_sts, 0, sizeof(mbox_sts[0]) * MBOX_REG_COUNT); | 301 | memset(mbox_sts, 0, sizeof(mbox_sts[0]) * MBOX_REG_COUNT); |
302 | |||
303 | if (is_qla8022(ha)) | ||
304 | qla4_8xxx_wr_32(ha, ha->nx_db_wr_ptr, 0); | ||
305 | |||
302 | mbox_cmd[0] = MBOX_CMD_INITIALIZE_FIRMWARE; | 306 | mbox_cmd[0] = MBOX_CMD_INITIALIZE_FIRMWARE; |
303 | mbox_cmd[1] = 0; | 307 | mbox_cmd[1] = 0; |
304 | mbox_cmd[2] = LSDW(init_fw_cb_dma); | 308 | mbox_cmd[2] = LSDW(init_fw_cb_dma); |
@@ -472,6 +476,11 @@ int qla4xxx_initialize_fw_cb(struct scsi_qla_host * ha) | |||
472 | init_fw_cb->fw_options |= | 476 | init_fw_cb->fw_options |= |
473 | __constant_cpu_to_le16(FWOPT_SESSION_MODE | | 477 | __constant_cpu_to_le16(FWOPT_SESSION_MODE | |
474 | FWOPT_INITIATOR_MODE); | 478 | FWOPT_INITIATOR_MODE); |
479 | |||
480 | if (is_qla8022(ha)) | ||
481 | init_fw_cb->fw_options |= | ||
482 | __constant_cpu_to_le16(FWOPT_ENABLE_CRBDB); | ||
483 | |||
475 | init_fw_cb->fw_options &= __constant_cpu_to_le16(~FWOPT_TARGET_MODE); | 484 | init_fw_cb->fw_options &= __constant_cpu_to_le16(~FWOPT_TARGET_MODE); |
476 | 485 | ||
477 | if (qla4xxx_set_ifcb(ha, &mbox_cmd[0], &mbox_sts[0], init_fw_cb_dma) | 486 | if (qla4xxx_set_ifcb(ha, &mbox_cmd[0], &mbox_sts[0], init_fw_cb_dma) |
@@ -592,7 +601,7 @@ int qla4xxx_get_firmware_status(struct scsi_qla_host * ha) | |||
592 | } | 601 | } |
593 | 602 | ||
594 | ql4_printk(KERN_INFO, ha, "%ld firmare IOCBs available (%d).\n", | 603 | ql4_printk(KERN_INFO, ha, "%ld firmare IOCBs available (%d).\n", |
595 | ha->host_no, mbox_cmd[2]); | 604 | ha->host_no, mbox_sts[2]); |
596 | 605 | ||
597 | return QLA_SUCCESS; | 606 | return QLA_SUCCESS; |
598 | } | 607 | } |