qla2xxx: Correct iiDMA-update calling conventions.

* To set iiDMA speeds for ISP81XX, bits 5-0 are used whereas for
  other older ISPs bits 2-0 are used.
* Pass proper VP index

Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
Harish Zunjarrao 2009-06-17 10:30:29 -07:00 committed by James Bottomley
parent 27dc9c5a3d
commit 1bb3954851
2 changed files with 8 additions and 7 deletions

View File

@ -2301,7 +2301,7 @@ qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
static char *link_speeds[] = { "1", "2", "?", "4", "8", "10" }; static char *link_speeds[] = { "1", "2", "?", "4", "8", "10" };
char *link_speed; char *link_speed;
int rval; int rval;
uint16_t mb[6]; uint16_t mb[4];
struct qla_hw_data *ha = vha->hw; struct qla_hw_data *ha = vha->hw;
if (!IS_IIDMA_CAPABLE(ha)) if (!IS_IIDMA_CAPABLE(ha))

View File

@ -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[0] = MBC_PORT_PARAMS;
mcp->mb[1] = loop_id; mcp->mb[1] = loop_id;
mcp->mb[2] = BIT_0; mcp->mb[2] = BIT_0;
mcp->mb[3] = port_speed & (BIT_2|BIT_1|BIT_0); if (IS_QLA81XX(vha->hw))
mcp->mb[4] = mcp->mb[5] = 0; mcp->mb[3] = port_speed & (BIT_5|BIT_4|BIT_3|BIT_2|BIT_1|BIT_0);
mcp->out_mb = MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; else
mcp->in_mb = MBX_5|MBX_4|MBX_3|MBX_1|MBX_0; 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->tov = MBX_TOV_SECONDS;
mcp->flags = 0; mcp->flags = 0;
rval = qla2x00_mailbox_command(vha, mcp); 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[0] = mcp->mb[0];
mb[1] = mcp->mb[1]; mb[1] = mcp->mb[1];
mb[3] = mcp->mb[3]; mb[3] = mcp->mb[3];
mb[4] = mcp->mb[4];
mb[5] = mcp->mb[5];
} }
if (rval != QLA_SUCCESS) { if (rval != QLA_SUCCESS) {