diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2009-03-24 12:08:01 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-04-03 10:22:46 -0400 |
commit | b64b0e8fd964ce637794d4aaa772db1ae4298ea9 (patch) | |
tree | 676892927a4ec44afdb682ab30a58a30e1d50bfd /drivers/scsi/qla2xxx/qla_mbx.c | |
parent | dda772e8e3b9832d3368f84df3a3b7ec7dfbd9f0 (diff) |
[SCSI] qla2xxx: Pass in optional extended-initialization control block.
Recent ISPs use this data to configure FCF information.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_mbx.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 4aab7acf7525..91e133bd8e60 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
@@ -1043,14 +1043,22 @@ qla2x00_init_firmware(scsi_qla_host_t *vha, uint16_t size) | |||
1043 | else | 1043 | else |
1044 | mcp->mb[0] = MBC_INITIALIZE_FIRMWARE; | 1044 | mcp->mb[0] = MBC_INITIALIZE_FIRMWARE; |
1045 | 1045 | ||
1046 | mcp->mb[1] = 0; | ||
1046 | mcp->mb[2] = MSW(ha->init_cb_dma); | 1047 | mcp->mb[2] = MSW(ha->init_cb_dma); |
1047 | mcp->mb[3] = LSW(ha->init_cb_dma); | 1048 | mcp->mb[3] = LSW(ha->init_cb_dma); |
1048 | mcp->mb[4] = 0; | ||
1049 | mcp->mb[5] = 0; | ||
1050 | mcp->mb[6] = MSW(MSD(ha->init_cb_dma)); | 1049 | mcp->mb[6] = MSW(MSD(ha->init_cb_dma)); |
1051 | mcp->mb[7] = LSW(MSD(ha->init_cb_dma)); | 1050 | mcp->mb[7] = LSW(MSD(ha->init_cb_dma)); |
1052 | mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; | 1051 | mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; |
1053 | mcp->in_mb = MBX_5|MBX_4|MBX_0; | 1052 | if (IS_QLA81XX(ha) && ha->ex_init_cb->ex_version) { |
1053 | mcp->mb[1] = BIT_0; | ||
1054 | mcp->mb[10] = MSW(ha->ex_init_cb_dma); | ||
1055 | mcp->mb[11] = LSW(ha->ex_init_cb_dma); | ||
1056 | mcp->mb[12] = MSW(MSD(ha->ex_init_cb_dma)); | ||
1057 | mcp->mb[13] = LSW(MSD(ha->ex_init_cb_dma)); | ||
1058 | mcp->mb[14] = sizeof(*ha->ex_init_cb); | ||
1059 | mcp->out_mb |= MBX_14|MBX_13|MBX_12|MBX_11|MBX_10; | ||
1060 | } | ||
1061 | mcp->in_mb = MBX_0; | ||
1054 | mcp->buf_size = size; | 1062 | mcp->buf_size = size; |
1055 | mcp->flags = MBX_DMA_OUT; | 1063 | mcp->flags = MBX_DMA_OUT; |
1056 | mcp->tov = MBX_TOV_SECONDS; | 1064 | mcp->tov = MBX_TOV_SECONDS; |