aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_mbx.c
diff options
context:
space:
mode:
authorandrew.vasquez@qlogic.com <andrew.vasquez@qlogic.com>2006-03-09 17:27:44 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-12 10:40:37 -0500
commit9a52a57cb9d247fc1cea018fd3f4421f8fd6642a (patch)
tree1ceafa260a18a02485973cd0bed9b971f558910d /drivers/scsi/qla2xxx/qla_mbx.c
parent4a59f71d7f0d6dd433fd509584352cdd7c62e877 (diff)
[SCSI] qla2xxx: Correct FCAL login retry logic for ISP24xx.
ISP24XX FW does not support Mbx 0x74 ie Login Local Port. Added the equivalent code for ISP24XX ie to relogin in non fabric case for ISP24XX use login iocb. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_mbx.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 85c83e0027ff..d6cb3bd1a29a 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -1631,20 +1631,25 @@ qla2x00_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1631 * 1631 *
1632 */ 1632 */
1633int 1633int
1634qla2x00_login_local_device(scsi_qla_host_t *ha, uint16_t loop_id, 1634qla2x00_login_local_device(scsi_qla_host_t *ha, fc_port_t *fcport,
1635 uint16_t *mb_ret, uint8_t opt) 1635 uint16_t *mb_ret, uint8_t opt)
1636{ 1636{
1637 int rval; 1637 int rval;
1638 mbx_cmd_t mc; 1638 mbx_cmd_t mc;
1639 mbx_cmd_t *mcp = &mc; 1639 mbx_cmd_t *mcp = &mc;
1640 1640
1641 if (IS_QLA24XX(ha) || IS_QLA54XX(ha))
1642 return qla24xx_login_fabric(ha, fcport->loop_id,
1643 fcport->d_id.b.domain, fcport->d_id.b.area,
1644 fcport->d_id.b.al_pa, mb_ret, opt);
1645
1641 DEBUG3(printk("%s(%ld): entered.\n", __func__, ha->host_no);) 1646 DEBUG3(printk("%s(%ld): entered.\n", __func__, ha->host_no);)
1642 1647
1643 mcp->mb[0] = MBC_LOGIN_LOOP_PORT; 1648 mcp->mb[0] = MBC_LOGIN_LOOP_PORT;
1644 if (HAS_EXTENDED_IDS(ha)) 1649 if (HAS_EXTENDED_IDS(ha))
1645 mcp->mb[1] = loop_id; 1650 mcp->mb[1] = fcport->loop_id;
1646 else 1651 else
1647 mcp->mb[1] = loop_id << 8; 1652 mcp->mb[1] = fcport->loop_id << 8;
1648 mcp->mb[2] = opt; 1653 mcp->mb[2] = opt;
1649 mcp->out_mb = MBX_2|MBX_1|MBX_0; 1654 mcp->out_mb = MBX_2|MBX_1|MBX_0;
1650 mcp->in_mb = MBX_7|MBX_6|MBX_1|MBX_0; 1655 mcp->in_mb = MBX_7|MBX_6|MBX_1|MBX_0;