|
@@ -2697,10 +2697,13 @@ qla2x00_set_idma_speed(scsi_qla_host_t *vha, uint16_t loop_id,
|
|
|
mcp->mb[0] = MBC_PORT_PARAMS;
|
|
|
mcp->mb[1] = loop_id;
|
|
|
mcp->mb[2] = BIT_0;
|
|
|
- mcp->mb[3] = port_speed & (BIT_2|BIT_1|BIT_0);
|
|
|
- mcp->mb[4] = mcp->mb[5] = 0;
|
|
|
- mcp->out_mb = MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
|
|
|
- mcp->in_mb = MBX_5|MBX_4|MBX_3|MBX_1|MBX_0;
|
|
|
+ if (IS_QLA81XX(vha->hw))
|
|
|
+ mcp->mb[3] = port_speed & (BIT_5|BIT_4|BIT_3|BIT_2|BIT_1|BIT_0);
|
|
|
+ else
|
|
|
+ mcp->mb[3] = port_speed & (BIT_2|BIT_1|BIT_0);
|
|
|
+ mcp->mb[9] = vha->vp_idx;
|
|
|
+ mcp->out_mb = MBX_9|MBX_3|MBX_2|MBX_1|MBX_0;
|
|
|
+ mcp->in_mb = MBX_3|MBX_1|MBX_0;
|
|
|
mcp->tov = MBX_TOV_SECONDS;
|
|
|
mcp->flags = 0;
|
|
|
rval = qla2x00_mailbox_command(vha, mcp);
|
|
@@ -2710,8 +2713,6 @@ qla2x00_set_idma_speed(scsi_qla_host_t *vha, uint16_t loop_id,
|
|
|
mb[0] = mcp->mb[0];
|
|
|
mb[1] = mcp->mb[1];
|
|
|
mb[3] = mcp->mb[3];
|
|
|
- mb[4] = mcp->mb[4];
|
|
|
- mb[5] = mcp->mb[5];
|
|
|
}
|
|
|
|
|
|
if (rval != QLA_SUCCESS) {
|