aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeokmann Ju <seokmann.ju@qlogic.com>2008-01-17 12:02:19 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-01-23 12:29:33 -0500
commitc48339decceec8e011498b0fc4c7c7d8b2ea06c1 (patch)
tree7e6a4d4c36d6647a9822ccb6b36b5c8dee16e51b
parentfc44765f5a232d451fa58a04606b254ac257b429 (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.c4
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c2
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;