diff options
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_mbx.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 779ce14e9a2a..fe69f3057671 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
@@ -1267,17 +1267,22 @@ qla2x00_get_firmware_state(scsi_qla_host_t *vha, uint16_t *states) | |||
1267 | 1267 | ||
1268 | mcp->mb[0] = MBC_GET_FIRMWARE_STATE; | 1268 | mcp->mb[0] = MBC_GET_FIRMWARE_STATE; |
1269 | mcp->out_mb = MBX_0; | 1269 | mcp->out_mb = MBX_0; |
1270 | mcp->in_mb = MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; | 1270 | if (IS_FWI2_CAPABLE(vha->hw)) |
1271 | mcp->in_mb = MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; | ||
1272 | else | ||
1273 | mcp->in_mb = MBX_1|MBX_0; | ||
1271 | mcp->tov = MBX_TOV_SECONDS; | 1274 | mcp->tov = MBX_TOV_SECONDS; |
1272 | mcp->flags = 0; | 1275 | mcp->flags = 0; |
1273 | rval = qla2x00_mailbox_command(vha, mcp); | 1276 | rval = qla2x00_mailbox_command(vha, mcp); |
1274 | 1277 | ||
1275 | /* Return firmware states. */ | 1278 | /* Return firmware states. */ |
1276 | states[0] = mcp->mb[1]; | 1279 | states[0] = mcp->mb[1]; |
1277 | states[1] = mcp->mb[2]; | 1280 | if (IS_FWI2_CAPABLE(vha->hw)) { |
1278 | states[2] = mcp->mb[3]; | 1281 | states[1] = mcp->mb[2]; |
1279 | states[3] = mcp->mb[4]; | 1282 | states[2] = mcp->mb[3]; |
1280 | states[4] = mcp->mb[5]; | 1283 | states[3] = mcp->mb[4]; |
1284 | states[4] = mcp->mb[5]; | ||
1285 | } | ||
1281 | 1286 | ||
1282 | if (rval != QLA_SUCCESS) { | 1287 | if (rval != QLA_SUCCESS) { |
1283 | /*EMPTY*/ | 1288 | /*EMPTY*/ |