diff options
author | Seokmann Ju <seokmann.ju@qlogic.com> | 2008-01-17 12:02:19 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-01-23 12:29:33 -0500 |
commit | c48339decceec8e011498b0fc4c7c7d8b2ea06c1 (patch) | |
tree | 7e6a4d4c36d6647a9822ccb6b36b5c8dee16e51b | |
parent | fc44765f5a232d451fa58a04606b254ac257b429 (diff) |
[SCSI] qla2xxx: Issue correct MBC_INITIALIZE_FIRMWARE command.
There is a case where 54xx HBA loads MID firmware as it use 24xx
firmware. In this case, the driver should issue
MBC_MID_INITIALIZE FIRMWARE even though the HBA doesn't support
NPIV. This patch make changes in the driver so that could behave
accordingly.
Signed-off-by: Seokmann Ju <seokmann.ju@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 4 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 7637fa7546b5..d0633ca894be 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -1193,7 +1193,9 @@ qla2x00_init_rings(scsi_qla_host_t *ha) | |||
1193 | 1193 | ||
1194 | DEBUG(printk("scsi(%ld): Issue init firmware.\n", ha->host_no)); | 1194 | DEBUG(printk("scsi(%ld): Issue init firmware.\n", ha->host_no)); |
1195 | 1195 | ||
1196 | mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports); | 1196 | if (ha->flags.npiv_supported) |
1197 | mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports); | ||
1198 | |||
1197 | mid_init_cb->options = __constant_cpu_to_le16(BIT_1); | 1199 | mid_init_cb->options = __constant_cpu_to_le16(BIT_1); |
1198 | 1200 | ||
1199 | rval = qla2x00_init_firmware(ha, ha->init_cb_size); | 1201 | rval = qla2x00_init_firmware(ha, ha->init_cb_size); |
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 99d29fff836d..0c10c0b0fb73 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
@@ -980,7 +980,7 @@ qla2x00_init_firmware(scsi_qla_host_t *ha, uint16_t size) | |||
980 | DEBUG11(printk("qla2x00_init_firmware(%ld): entered.\n", | 980 | DEBUG11(printk("qla2x00_init_firmware(%ld): entered.\n", |
981 | ha->host_no)); | 981 | ha->host_no)); |
982 | 982 | ||
983 | if (ha->flags.npiv_supported) | 983 | if (ha->fw_attributes & BIT_2) |
984 | mcp->mb[0] = MBC_MID_INITIALIZE_FIRMWARE; | 984 | mcp->mb[0] = MBC_MID_INITIALIZE_FIRMWARE; |
985 | else | 985 | else |
986 | mcp->mb[0] = MBC_INITIALIZE_FIRMWARE; | 986 | mcp->mb[0] = MBC_INITIALIZE_FIRMWARE; |