Commit f9a2a543 authored by Armen Baloyan's avatar Armen Baloyan Committed by James Bottomley

[SCSI] qla2xxx: Add changes in initialization for ISPFX00 cards with BIOS

Signed-off-by: default avatarArmen Baloyan <armen.baloyan@qlogic.com>
Signed-off-by: default avatarSaurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 1fe19ee4
...@@ -643,6 +643,7 @@ struct device_reg_fx00 { ...@@ -643,6 +643,7 @@ struct device_reg_fx00 {
uint32_t initval6; /* C8 */ uint32_t initval6; /* C8 */
uint32_t initval7; /* CC */ uint32_t initval7; /* CC */
uint32_t fwheartbeat; /* D0 */ uint32_t fwheartbeat; /* D0 */
uint32_t pseudoaen; /* D4 */
}; };
......
...@@ -941,12 +941,23 @@ qlafx00_init_fw_ready(scsi_qla_host_t *vha) ...@@ -941,12 +941,23 @@ qlafx00_init_fw_ready(scsi_qla_host_t *vha)
struct qla_hw_data *ha = vha->hw; struct qla_hw_data *ha = vha->hw;
struct device_reg_fx00 __iomem *reg = &ha->iobase->ispfx00; struct device_reg_fx00 __iomem *reg = &ha->iobase->ispfx00;
uint32_t aenmbx, aenmbx7 = 0; uint32_t aenmbx, aenmbx7 = 0;
uint32_t pseudo_aen;
uint32_t state[5]; uint32_t state[5];
bool done = false; bool done = false;
/* 30 seconds wait - Adjust if required */ /* 30 seconds wait - Adjust if required */
wait_time = 30; wait_time = 30;
pseudo_aen = RD_REG_DWORD(&reg->pseudoaen);
if (pseudo_aen == 1) {
aenmbx7 = RD_REG_DWORD(&reg->initval7);
ha->mbx_intr_code = MSW(aenmbx7);
ha->rqstq_intr_code = LSW(aenmbx7);
rval = qlafx00_driver_shutdown(vha, 10);
if (rval != QLA_SUCCESS)
qlafx00_soft_reset(vha);
}
/* wait time before firmware ready */ /* wait time before firmware ready */
wtime = jiffies + (wait_time * HZ); wtime = jiffies + (wait_time * HZ);
do { do {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment